У меня есть список файлов, которые я хочу проверить, существуют ли они в моей файловой системе. Я думал сделать это, используя findв:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(используя zsh), но это не работает, так как findкажется, что он завершает работу , 0независимо от того, находит ли он файл. Я предполагаю , что я мог бы передать его через какой - то другой тест , который проверяет , чтобы увидеть , если findпроизводит какой - либо выход (нефть , но эффективным было бы заменить > /dev/nullс |grep '') , но это чувствует , как с помощью тролля поймать козу (другие национальности могли бы сказать что - то о кувалды и грецкие орехи ).
Есть ли способ заставить findменя дать полезное значение выхода? Или хотя бы получить список тех файлов, которые не были найдены? (Я могу себе представить, что последнее может быть легче благодаря некоторому хитрому выбору логических связок, но я, кажется, всегда завязываю в узлах, когда пытаюсь это выяснить.)
Предыстория / Мотивация: у меня есть «основная» резервная копия, и я хочу проверить, что некоторые файлы на моем локальном компьютере существуют на моей главной резервной копии, прежде чем удалять их (чтобы освободить место). Поэтому я составил список файлов, sshотредактировал их на главном компьютере, а потом не мог найти лучший способ найти пропавшие файлы.
locateне показывает текущее состояние файловой системы, это может быть день или даже неделя. Это подходит в качестве базы для тестирования резервных копий.
locate.