находить файлы из списка файлов и выполнять удаление

Может возникнуть проблема с помощью nvidia, попробуйте удалить nvidia и переустановить с текущими обновлениями.

Сделайте следующее в терминале,

$ sudo apt-get purge nvidia-* 
$ sudo apt-get update 
$ sudo apt-get install nvidia-current-updates 
-3
задан 30 August 2017 в 01:25

12 ответов

Если есть файл (назовем его filenames.txt) со списком имен файлов, которые вы хотите удалить, например

a.txt
subfolder1/b.sh
subfolder2/subfolder3/c.jpg
/home/user/a.txt

, вам просто нужно cd в папку, в которой относительные пути, содержащиеся в файле, являются допустимыми и выдают команду:

< path/to/filenames.txt xargs echo rm

Вы заметите, что это просто перечислит команды rm. Это проверка безопасности. Удалите echo, чтобы запустить удаление файла на свой страх и риск!

Обратите внимание, что пути будут переданы непосредственно в rm без дополнительных мер, поэтому последняя строка в моем примере будет работать как абсолютный путь .

4
ответ дан 22 May 2018 в 18:58
  • 1
    Работает хорошо. Большое спасибо! – Josef Klimuk 29 August 2017 в 11:07
  • 2
    @Melebius OP упомянул, что список содержит только имя файла и основан на его псевдокодеке, который переходит к параметру -name. Кстати, он принял этот ответ! – αғsнιη 30 August 2017 в 02:41
  • 3
    @AFSHIN Ну, так как OP не привел примера, я реализовал простейший вариант и ожидал несколько итераций. Я поддержал ваш ответ, который выглядит правильно для меня. – Melebius 30 August 2017 в 06:55

Если есть файл (назовем его filenames.txt) со списком имен файлов, которые вы хотите удалить, например

a.txt subfolder1/b.sh subfolder2/subfolder3/c.jpg /home/user/a.txt

, вам просто нужно cd в папку, в которой относительные пути, содержащиеся в файле, являются допустимыми и выдают команду:

< path/to/filenames.txt xargs echo rm

Вы заметите, что это просто перечислит команды rm. Это проверка безопасности. Удалите echo, чтобы запустить удаление файла на свой страх и риск!

Обратите внимание, что пути будут переданы непосредственно в rm без дополнительных мер, поэтому последняя строка в моем примере будет работать как абсолютный путь .

4
ответ дан 18 July 2018 в 07:45

Если есть файл (назовем его filenames.txt) со списком имен файлов, которые вы хотите удалить, например

a.txt subfolder1/b.sh subfolder2/subfolder3/c.jpg /home/user/a.txt

, вам просто нужно cd в папку, в которой относительные пути, содержащиеся в файле, являются допустимыми и выдают команду:

< path/to/filenames.txt xargs echo rm

Вы заметите, что это просто перечислит команды rm. Это проверка безопасности. Удалите echo, чтобы запустить удаление файла на свой страх и риск!

Обратите внимание, что пути будут переданы непосредственно в rm без дополнительных мер, поэтому последняя строка в моем примере будет работать как абсолютный путь .

4
ответ дан 24 July 2018 в 18:52

Используйте find с xargs, если у вас есть только имя файла, сохраненное в myTextFile:

xargs -d '\n' -a /path/to/myTextFile -I FILENAME find /src -type f -name FILENAME #-delete

, если вы знаете, что все файлы находятся в одном конкретном каталоге или у них есть свой путь, команда будет:

xargs -d '\n' -a /path/to/myTextFile echo rm -f --

Или используя простой скрипт bash.

while IFS='\n' read -r FILE
do
    find /src -type f -name "$FILE" #-delete
done < /path/to/myTextFile
4
ответ дан 22 May 2018 в 18:58

Нажимайте myTextFile на цикл while с помощью команды read:

while IFS= read -r f; do
   test -f "$f" && rm -f "$f"
done < myTextFile
2
ответ дан 22 May 2018 в 18:58
  • 1
    Зачем проверять существование и тип файла перед удалением (принудительным)? – David Foerster 15 November 2017 в 23:27
for i in `less list-from-file.txt`; do rm $i;done

, где less откроет файл list-from-file.txt

Итак, каждая строка файла list-from-file.txt находится в $i

Наконец, rm удалит файл.

-2
ответ дан 22 May 2018 в 18:58

Нажимайте myTextFile на цикл while с помощью команды read:

while IFS= read -r f; do test -f "$f" && rm -f "$f" done < myTextFile
2
ответ дан 18 July 2018 в 07:45
for i in `less list-from-file.txt`; do rm $i;done

, где less откроет файл list-from-file.txt

Итак, каждая строка файла list-from-file.txt находится в $i

Наконец, rm удалит файл.

-2
ответ дан 18 July 2018 в 07:45

Используйте find с xargs, если у вас есть только имя файла, сохраненное в myTextFile:

xargs -d '\n' -a /path/to/myTextFile -I FILENAME find /src -type f -name FILENAME #-delete

, если вы знаете, что все файлы находятся в одном конкретном каталоге или у них есть свой путь, команда будет:

xargs -d '\n' -a /path/to/myTextFile echo rm -f --

Или используя простой скрипт bash.

while IFS='\n' read -r FILE do find /src -type f -name "$FILE" #-delete done < /path/to/myTextFile
4
ответ дан 18 July 2018 в 07:45

Нажимайте myTextFile на цикл while с помощью команды read:

while IFS= read -r f; do test -f "$f" && rm -f "$f" done < myTextFile
2
ответ дан 24 July 2018 в 18:52
  • 1
    Зачем проверять существование и тип файла перед удалением (принудительным)? – David Foerster 15 November 2017 в 23:27
for i in `less list-from-file.txt`; do rm $i;done

, где less откроет файл list-from-file.txt

Итак, каждая строка файла list-from-file.txt находится в $i

Наконец, rm удалит файл.

-2
ответ дан 24 July 2018 в 18:52

Используйте find с xargs, если у вас есть только имя файла, сохраненное в myTextFile:

xargs -d '\n' -a /path/to/myTextFile -I FILENAME find /src -type f -name FILENAME #-delete

, если вы знаете, что все файлы находятся в одном конкретном каталоге или у них есть свой путь, команда будет:

xargs -d '\n' -a /path/to/myTextFile echo rm -f --

Или используя простой скрипт bash.

while IFS='\n' read -r FILE do find /src -type f -name "$FILE" #-delete done < /path/to/myTextFile
4
ответ дан 24 July 2018 в 18:52

Другие вопросы по тегам:

Похожие вопросы: