Antes de tudo, observe que a exclusão de diretórios vazios geralmente não é necessária. Alguns serviços ou aplicativos podem até precisar de certos diretórios para existir. Esteja ciente do que você está fazendo.
Você pode listar pastas vazias com find, quando executadas no Terminal.app:
find . -type d -empty
Por padrão, findlista arquivos e pastas, mas aqui o -type drestringe a diretórios, e a -emptyopção mostra apenas diretórios vazios. Isso recursará todas as pastas descendentes do diretório inicial ( ou abreviado ). Para expandir isso para todo o seu sistema de arquivos, use:/Users/your-username/~
find / -type d -empty
Aqui, /significa a raiz do seu sistema de arquivos Mac OS X. Obviamente, você também pode usar qualquer outro ponto de partida, por exemplo, seu disco externo montado sob ;/Volumes/your-disk-name
find /Volumes/your-disk-name -type d -empty
Agora, se você deseja excluir quaisquer findsaídas, basta anexar -delete, da seguinte forma:
find . -type d -empty -delete
Nota: Isso não solicitará confirmação . Ele excluirá todos os diretórios possíveis, ou seja, aqueles onde você tem permissão para excluir. Eles não serão movidos para o lixo, mas desaparecerão para sempre. Se você deseja ser solicitado antes da remoção, altere o comando para algo como o seguinte:
Isso me dá uma saída illegal option -- ttypee emptyparece não ser capaz de reconhecer.
Aster
1
@AsTeR A versão do OS X findrequer um caminho, então tente novamente com find . -type d, não find -type d(o último funciona para o GNU find).
slhck
6
Enquanto isso funciona, provavelmente não localiza pastas que contêm apenas os arquivos .DS_Store ocultos, tornando-os tecnicamente não vazios, mas aparecendo vazios para o usuário. Se um usuário quiser encontrar todas as pastas que parecem vazias, as que ele abriu no Finder não serão encontradas dessa maneira porque o Finder teria adicionado um arquivo .DS_Store.
SuperTempel
Portanto, podemos precisar fazer isso em duas etapas: primeiro remova os arquivos .DS_Store (pode ser feito findda mesma maneira que acima) e, em seguida, use o comando sugerido para remover os diretórios vazios restantes.
gerlos 4/08/15
6
Eu criei um programa pequeno e gratuito que resolve isso melhor:
@kenchew Eu acredito que você está procurando essefind ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo
2
Para promover esse esforço:
Eu criei um script que eu uso para limpar minha pasta de documentos de tempos em tempos, como estou no TOC e cansado de ficar sobrecarregado com o APP e gosto de simplicidade.
Fiz isso em um esforço para melhorar e fornecer uma solução alternativa.
Por fim, no arquivo de ícone do @ kenche, isso parece não existir no meu mac, pois eu não modifiquei os ícones das pastas, mas você pode fazê-lo no inspetor. Ao arrastar uma imagem para o canto superior esquerdo, ela criará o Icon^Marquivo nesse diretório.
Para encontrá-los também, você pode executar:
(Você deve estar paranóico se encontrar um falso positivo, use: ctrl+ vctrl+ em mvez de?)
find ~/Documents-type f -name 'Icon?'-print;# and to remove
find ~/Documents-type f -name 'Icon?'-print -delete;
IMPORTANTE
Por favor, como @slhck afirmou acima: Alguns serviços ou aplicativos podem até precisar de certos diretórios para existir. Isso também se aplica aos arquivos DS_Store e Icon, POR FAVOR , esteja ciente do que está fazendo. Nota também: Este script não solicitará confirmação. Ele excluirá todos os diretórios que puder. ou seja, aqueles em que você tem permissão para excluir. Eles não serão movidos para o lixo, mas desaparecerão para sempre.
Script BASH
#!/bin/bash# =============================================================================# MAC OSX HIGH SIERRA 10.13.4 (17E199)# Terminal: Version: 2.8.2 64-Bit (Intel): Yes# Terminal Location: /Applications/Utilities/Terminal.app# =============================================================================# Terminal CLEAN UP YOUR DOCUMENTS FOLDER.# =============================================================================# START WHAT IS BELIEVED TO BE EMPTY NOW.# =============================================================================
echo 'Searching Documents for empty folders...'
find ~/Documents-type d -empty;
# =============================================================================# SHOW & THEN REMOVE ALL MAC OS DS_Store FILES# =============================================================================
echo 'Searching Documents for DS_Store files...'
find ~/Documents-type f -name ".DS_Store"-print;
echo 'Removing DS_Store files...'
find ~/Documents-type f -name ".DS_Store"-print -delete;
# =============================================================================# SHOW & THEN REMOVE ALL MAC OS ZERO SIZED FILES# =============================================================================
echo 'Searching Documents for ZERO file sized files...'
find ~/Documents-type f -empty;
echo 'Removing ZERO file sized files...'
find ~/Documents-type f -empty -delete;
# =============================================================================# SHOW & THEN REMOVE Icon^M FILES# USE THE ? MARK FOR EASE OF USE YOU CAN ALSO SUB 'CTRL + V & CTRL + M' FOR ^M # =============================================================================
echo 'Searching Documents for Icon files...'
find ~/Documents-type f -name 'Icon?'-print;
echo 'Removing Icon files from Documents...'
find ~/Documents-type f -name 'Icon?'-print -delete;# SEEMINGLY THE SAME AS# find ~/Documents -type f -size 0 -print# find ~/Documents -type f -size 0 -print -delete
# =============================================================================# SHOWCASE NEW FOUND EMPTY FOLDERS# =============================================================================
echo 'Showcasing new result of existing and new found empty folders...'
find ~/Documents-type d -empty;
echo 'Deleting result of empty folders...'
find ~/Documents-type d -empty -delete;
echo 'Showcasing the removal of said, 'empty folders'...'
find ~/Documents-type d -empty;
Respostas:
Antes de tudo, observe que a exclusão de diretórios vazios geralmente não é necessária. Alguns serviços ou aplicativos podem até precisar de certos diretórios para existir. Esteja ciente do que você está fazendo.
Você pode listar pastas vazias com
find
, quando executadas no Terminal.app:Por padrão,
find
lista arquivos e pastas, mas aqui o-type d
restringe a diretórios, e a-empty
opção mostra apenas diretórios vazios. Isso recursará todas as pastas descendentes do diretório inicial ( ou abreviado ). Para expandir isso para todo o seu sistema de arquivos, use:/Users/your-username/
~
Aqui,
/
significa a raiz do seu sistema de arquivos Mac OS X. Obviamente, você também pode usar qualquer outro ponto de partida, por exemplo, seu disco externo montado sob ;/Volumes/your-disk-name
Agora, se você deseja excluir quaisquer
find
saídas, basta anexar-delete
, da seguinte forma:Nota: Isso não solicitará confirmação . Ele excluirá todos os diretórios possíveis, ou seja, aqueles onde você tem permissão para excluir. Eles não serão movidos para o lixo, mas desaparecerão para sempre. Se você deseja ser solicitado antes da remoção, altere o comando para algo como o seguinte:
fonte
illegal option -- t
type
eempty
parece não ser capaz de reconhecer.find
requer um caminho, então tente novamente comfind . -type d
, nãofind -type d
(o último funciona para o GNUfind
).find
da mesma maneira que acima) e, em seguida, use o comando sugerido para remover os diretórios vazios restantes.Eu criei um programa pequeno e gratuito que resolve isso melhor:
http://www.macupdate.com/app/mac/52551/find-empty-folders
A vantagem deste programa é que ele também encontra pastas aparentemente vazias, mas que contêm o arquivo ".DS_Store" invisível.
E também permite mover os itens encontrados para a Lixeira imediatamente.
fonte
find ~/Documents -type f -name 'Icon?' -print -delete;
Para promover esse esforço:
Eu criei um script que eu uso para limpar minha pasta de documentos de tempos em tempos, como estou no TOC e cansado de ficar sobrecarregado com o APP e gosto de simplicidade.
Fiz isso em um esforço para melhorar e fornecer uma solução alternativa.
Por fim, no arquivo de ícone do @ kenche, isso parece não existir no meu mac, pois eu não modifiquei os ícones das pastas, mas você pode fazê-lo no inspetor. Ao arrastar uma imagem para o canto superior esquerdo, ela criará o
Icon^M
arquivo nesse diretório.Para encontrá-los também, você pode executar:
IMPORTANTE
Script BASH
Fim do script.
Script pode ser visto aqui no GitHub
Referências:
Sobre os ícones que representam arquivos no seu Mac
Alguma maneira de remover todas as pastas que contêm apenas .DS_Store recursivamente?
Encontre pastas e subpastas contendo apenas ".DS_Store"
Como encontrar todos os arquivos de zero byte em um diretório, incluindo subdiretórios
Ícone? arquivo na área de trabalho do OS X
fonte