Localizador ocultando arquivo específico por nome

0

Em algum momento, o meu localizador de MBA 10.8 decidiu (ou era eu) ocultar certos arquivos de mim.

Aqui está o exemplo (eu tenho alguns outros arquivos como esse)

.. O cavalo de água.flv

Nome do arquivo

Originalmente, esses arquivos são baixados da Web no Firefox usando o complemento chamado Ant.com.

Ainda consigo ver os arquivos no VLC player ou no OminDiskSweeper.

Também posso ver os arquivos usando os arquivos ocultos da mostra no Terminal.

defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder

Costumava não ser assim, mas algo mudou, ou eu mudei sem saber.

Minha investigação mostrou que tem a ver com o início do nome do arquivo (..) que não é mais distribuído pelo programa de download.

Se eu remover o início do nome do arquivo, ele voltará ao normal, mas infelizmente os arquivos são nomeados assim originalmente no site.

Então, eu tentei o processo de reversão adicionando o ponto na frente e ele me diz que não devo fazer isso. Como digo ao meu sistema operacional para mostrar esses arquivos no Finder com esse nome ou como retiro o início do nome do arquivo durante ou após o processo de download, ou estou preso ao mostrar todos os arquivos ocultos.

Usando o ponto no início do nome do arquivo

Existe uma maneira de alterar o nome do arquivo antes, durante ou após o download, para que eu não precise usar o Terminal todas as vezes para exibir todos os arquivos e ocultar novamente.

Ruskes
fonte
1
Não entenda a pergunta que você já descobriu para ocultar e reexibir (corretamente). Normalmente você não deve mexer com arquivos ocultos através localizador embora .. depois de remover o ponto inverter o comando de terminal para esconder arquivos ocultos novamente e fazer renomear normal no Finder
Joop
@ Joop é exatamente essa a pergunta. Toda vez que faço o download desse arquivo (diariamente), tenho que reexibir, renomear e ocultar novamente.
Ruskes

Respostas:

4

Qualquer arquivo ou pasta que comece com '.' ficará oculto no Finder. Isso sempre foi verdade, nos tempos do NeXTStep.

Se o que você está tentando fazer é renomear automaticamente os arquivos que começam com um '.' para não começar com um '.' isso pode ser realizado facilmente com um script de shell. Salve o seguinte como /usr/local/bin/rename-dot-files.sh:

#!/bin/zsh -f

DIR="$HOME/Downloads/"

cd "$DIR"

ls -1Ad \.* | egrep -v '.DS_Store|.localized' | while read line
do

        NEWNAME=$(echo "$line" | sed 's#^\.##g')

        /bin/mv -vn "$line" "$NEWNAME"

done

exit 0

Esse script procurará $HOME/Downloads/por qualquer arquivo que comece com a. (excluindo .DS_Store e .localized que você não deseja renomear) e renomeá-lo para o mesmo nome, sem o '.' desde que não exista outro arquivo / pasta com o mesmo nome.

Para fazer isso automaticamente, você precisará criar um launchdplist que será iniciado automaticamente sempre que o diretório for alterado:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <false/>
    <key>Label</key>
    <string>com.tjluoma.rename-dot-files</string>
    <key>Program</key>
    <string>/usr/local/bin/rename-dot-files.sh</string>
    <key>RunAtLoad</key>
    <true/>
    <key>WatchPaths</key>
    <array>
        <string>/Users/luomat/Downloads/</string>
    </array>
</dict>
</plist>

Obviamente, você desejará alterar o caminho de /Users/luomat/para o que for o seu $ HOME.

Salve esse plist em ~/Library/LaunchAgents/com.tjluoma.rename-dot-files.pliste carregue-o como:

launchctl load ~/Library/LaunchAgents/com.tjluoma.rename-dot-files.plist

O script será executado sempre que o ~ / Downloads / for alterado, o que inclui qualquer arquivo sendo adicionado ou removido, mas se limita automaticamente aos arquivos que começam com '.'

TJ Luoma
fonte
Agora é isso que chamo de uma boa resposta.
Ruskes
Observe que ele não precisa estar dentro /usr/local/bin- pode estar em qualquer lugar, desde que você especifique o caminho absoluto ao executá-lo (como no .plist) ou coloque sua pasta contendo em $ PATH (por exemplo export PATH="$PATH:~/bin").
precisa saber é o seguinte