Сценарий оболочки для удаления нескольких файлов

[1120026] У меня есть образ Fedora-netinstall на моем USB-диске, и я попробовал эти два, и оба варианта отлично работают:[12124]
1
07.02.2015, 00:14
3 ответа

Это связано с линейными окончаниями, которые используют Windows ( \ R \ N ).

Вы можете удалить THES через VI :

$ vi myfile.txt
<ESC>
:set fileformat=unix
:wq
4
27.01.2020, 23:11

Если у вас есть список сотен файлов файлов, и вы хотите удалить их, нет причин для записи отдельных команд RM для каждого из них. Предполагая, что имена файлов сохранены в файле под названием list.txt , по одному на линии, и , которые они не содержат новых символов , вы могли бы просто сделать

while read -r file; do rm "$file"; done < list.txt 

объяснение

  • при чтении переменная; сделай что-нибудь; Сделано construct, будет прочитать каждую строку из файла и сохранять ее как переменную (в приведенном выше примере имя переменной является файл ). Требуется -R -R , чтобы разрешить имена файлов, содержащих такие вещи, как \ R или \ T . С -R -R они будут обрабатываться буквально, в то время как без него они будут расширены до возврата каретки или вкладки соответственно.
  • RM "$ file" : Это удалит каждый файл в списке, как он читается.

Или, вы можете использовать MapFile Bash's , который позволяет сохранить строки файла в массиве:

mapfile -t filelist < list.txt && rm "${filelist[@]}"
4
27.01.2020, 23:11

Спасибо за ответы, технические причины для этого, вероятно, в файле, кодирующемся где-то, но, чтобы исправить, я просто создал мой файл в CentOS Box

$> touch myfile.txt
$> nano myfile.txt

$> touch myfile.txt
$> nano myfile.txt

. В моем скрипте Bash (спасибо @jimmij)

#!/bin/bash

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

Спасибо за предложения @marko Frelih, @jimmij

2
27.01.2020, 23:11

Теги

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