Удалите файлы, которые перечислены в текстовом файле

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

Нет. Он не сможет войти в систему, пока DC не вернулся. Вы могли сделать, чтобы он вошел в систему локально с непаролем пользователя в домене, скопировал свой каталог профиля по новому и молился, чтобы он работал - но у Вас, вероятно, будут некоторые отклонения. Зафиксируйте ту статистику DC.

6
задан 27 August 2010 в 19:13
9 ответов
rm -rf `cat /path/to/filename`

''символы могут быть заменой $ ()

из страницы справочника удара:

   Command Substitution
       Command substitution allows the output of a command to replace the command
       name.  There are two forms:

              $(command)
       or
              `command`

       Bash performs the expansion by executing command and replacing the command
       substitution  with  the  standard output of the command, with any trailing
       newlines deleted.  Embedded newlines are not  deleted,  but  they  may  be
       removed  during  word splitting.  The command substitution $(cat file) can
       be replaced by the equivalent but faster $(< file).

       When the old-style backquote  form  of  substitution  is  used,  backslash
       retains its literal meaning except when followed by $, `, or \.  The first
       backquote not preceded by a backslash terminates the command substitution.
       When  using  the  $(command)  form, all characters between the parentheses
       make up the command; none are treated specially.

       Command substitutions may be nested.  To nest when  using  the  backquoted
       form, escape the inner backquotes with backslashes.

       If the substitution appears within double quotes, word splitting and path‐
       name expansion are not performed on the results.
5
ответ дан 2 December 2019 в 23:56
  • 1
    Перестанет работать с именами файлов, которые содержат пробел. –  Ignacio Vazquez-Abrams 27 August 2010 в 19:29
  • 2
    Мой failnames не имел пробелов, и это работало лучше в этом случае. Это действительно должно работать, хотя обработать пробелы в именах файлов. –  drewrockshard 27 August 2010 в 19:42

Никакая потребность в cat или цикл:

xargs -d '\n' -a file.list rm
12
ответ дан 2 December 2019 в 23:56
$ cat file.list | xargs rm
7
ответ дан 2 December 2019 в 23:56
  • 1
    я предпочел бы xargs - он обрабатывает пробельные и специальные символы, как он должен. –  Andreas Rehm 27 August 2010 в 20:30
while read filename ; do rm "$filename" ; done < files.lst
5
ответ дан 2 December 2019 в 23:56

Только для ада его, просто превратите файл в сценарий и выполнитесь, это обрабатывает пробел и большинство других неловких символов и просто. Не порождает больше процессов, чем большинство вышеупомянутых методов.

sed -ie 's/^/rm -f "/;s/$/"/' <filename>
sh <filename>
1
ответ дан 2 December 2019 в 23:56
  • 1
    Вы не должны изменять исходный файл, просто делать это на лету: sh -c "$(sed -e 's/\(.*\)/rm -f "\1"/' <filename>)" (также показ альтернативы sed сценарий). –  Paused until further notice. 28 August 2010 в 17:39
perl -lne 'unlink' files_to_remove.txt

Если необходимо удалить много файлов, это несколько раз быстрее, чем xargs + комната и многие много раз быстрее, чем цикл оболочки.

4
ответ дан 2 December 2019 в 23:56

Текущие ответы достаточны - xargs, может перестать работать, если у Вас есть слишком много файлов, хотя - в этом случае Вам будет нужен некоторый цикл.

Также - при выполнении такого рода вещи это не плохая идея, вместо того, чтобы удалить, переместить файлы в другую папку, таким образом, можно вручную проверить, что некоторые странные имена файлов не сделали некоторую ошибку. Затем когда Вы уверены, что Вы хорошо, просто удаляете папку.

0
ответ дан 2 December 2019 в 23:56

Не лучший, но это работает-:)

cat myfile | awk '{print "rm -rf " $0}' | bash
0
ответ дан 2 December 2019 в 23:56

Еще один: xargs rm < /путь/к/файл

(работает, если у вас одно имя файла на строку)

0
ответ дан 2 December 2019 в 23:56

Теги

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