xargs
и find
комбинация
Демонстрация:
Мои файлы:
[root@mail tmp]# find data/ -type f
data/A/d.txt
data/A/b.txt
data/A/a.txt
data/A/c.txt
data/B/e.txt
data/B/g.txt
data/B/f.txt
data/B/i.txt
Исключите список
[root@mail tmp]# cat exclude
data/A/a.txt
data/B/e.txt
найдите с xargs
[root@mail tmp]# find data/ -type f $( xargs -I{} echo -n " -not -path {} " < exclude )
data/A/d.txt
data/A/b.txt
data/A/c.txt
data/B/g.txt
data/B/f.txt
data/B/i.txt
Кажется, что Вывод в порядке, позвольте, удаляют, но прежде чем это удостоверяется, что вывод следующей команды в порядке, затем можно удалить предпоследний echo
команда.
[root@mail tmp]# find data/ -type f $( xargs -I{} echo -n " -not -path {} " < exclude ) | xargs -n1 echo rm -rf
rm -rf data/A/d.txt
rm -rf data/A/b.txt
rm -rf data/A/c.txt
rm -rf data/B/g.txt
rm -rf data/B/f.txt
rm -rf data/B/i.txt
почему я не могу ответить [11586] почему[11587] это происходит, кажется, что если 1-й токен команды чтения содержит одну или несколько дас ([11588]-[11589]), то символ, следующий за последним тире, будет развязан от команды [11590]selfinsert[11591]. [1298], например, следующий символ отключит ключ [11592]p[11593].[1299]