воскресенье, 17 апреля 2016 г.

О find словом...

Про возможности этой команды:

1. Можно каталогизировать найденные файлы:
find . -name '*.jpg' -execdir bash -c "echo {} >> list.txt" \;
2. Можно перемещать/делать ссылки на уровень выше:

find * -type f -name '*.jpg' -execdir ln -sr {} -t ../ \;

или

find . -iname '*.jpg' -execdir mv {} ../{} \;
3. Можно упаковывать:
find folder/ -iname *.txt -exec tar cvf archive.tar.gz -z {}/ \; 
однако, здесь может поджидать ошибка связанная с тем, что в archive.tar.gz упаковывает один-единственный файл - последний из найденных, предыдущие затёрты: tar не имеет возможности обновить архив, только переписать, можно избежать этой ошибки:
tar cvf archive.tar.gz -z `find folder/ -iname *.txt`



Ссылки:
awk и рекурсия
Query ragarding Solaris find command with -exec option

Ярлыки: