find também inclui o diretório atual no resultado que não precisa ser movido

0

Eu estou tentando escrever um script onde posso encontrar arquivos maiores que um determinado tamanho e movê-los para outro diretório, mas o comando find também inclui o diretório atual no resultado, que não precisa ser movido. comando que eu escrevi e a mensagem que recebo

$ find -size +2000c -print0 | while IFS= read -r -d $'
$ find -size +2000c -print0 | while IFS= read -r -d $'%pre%' file; do mv $file ~/wrkbnch; done

mv: cannot move '.' to '/home/jerry/wrkbnch/.': Device or resource busy
' file; do mv $file ~/wrkbnch; done mv: cannot move '.' to '/home/jerry/wrkbnch/.': Device or resource busy
    
por Jerry 15.09.2017 / 16:29

1 resposta

2

Se você está procurando por arquivos , não deixe de informar find com -type f :

find . -type f -size +2000c -exec mv {} "$HOME/wrkbnch" ';'

Seu código:

find -size +2000c -print0 |
while IFS= read -r -d $'
find . -type f -size +2000c -exec mv {} "$HOME/wrkbnch" ';'
' file; do mv $file ~/wrkbnch done

As duas coisas que faltam aqui são

  1. -type f para find e
  2. aspas duplas em torno de $file para lidar com nomes de arquivos excóticos (como * ).

Para obter informações sobre IFS= read -r , consulte " Entenda" IFS = read -r line "? " (você está lidando com a maioria desses problemas especificando especificamente o delimitador).

    
por 15.09.2017 / 16:34