Я попытался запустить
locate *.orig | xargs rm
, но он сказал No such file or directory
Я видел способы сделать это с помощью find, но locate возвращает полный путь к объекту поэтому должно быть возможно
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $something | xargs -0 rm
или
locate $something | while read f; do rm "$f"; done
Кроме того, вы должны защитить *.orig кавычками, чтобы избежать расширения оболочки и пройти его найти нетронутым.
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $something | xargs -0 rm
или
locate $something | while read f; do rm "$f"; done
Кроме того, вы должны защитить *.orig кавычками, чтобы избежать расширения оболочки и пройти его найти нетронутым.
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $something | xargs -0 rm
или
locate $something | while read f; do rm "$f"; done
Кроме того, вы должны защитить *.orig кавычками, чтобы избежать расширения оболочки и пройти его найти нетронутым.
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $ something | xargs -0 rm
или
найти $ something | при чтении f; do rm "$ f"; done
Кроме того, вы должны защитить *. orig
кавычками, чтобы избежать расширения оболочки и передать его, чтобы найти нетронутый.
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $ something | xargs -0 rm
или
найти $ something | при чтении f; do rm "$ f"; done
Кроме того, вы должны защитить *. orig
кавычками, чтобы избежать расширения оболочки и передать его, чтобы найти нетронутый.
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $ something | xargs -0 rm
или
найти $ something | при чтении f; do rm "$ f"; done
Кроме того, вы должны защитить *. orig
кавычками, чтобы избежать расширения оболочки и передать его, чтобы найти нетронутый.
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $ something | xargs -0 rm
или
найти $ something | при чтении f; do rm "$ f"; done
Кроме того, вы должны защитить *. orig
кавычками, чтобы избежать расширения оболочки и передать его, чтобы найти нетронутый.
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $ something | xargs -0 rm
или
найти $ something | при чтении f; do rm "$ f"; done
Кроме того, вы должны защитить *. orig
кавычками, чтобы избежать расширения оболочки и передать его, чтобы найти нетронутый.
Если имена файлов содержат пробелы, вы должны использовать
locate -0 $ something | xargs -0 rm
или
найти $ something | при чтении f; do rm "$ f"; done
Кроме того, вы должны защитить *. orig
кавычками, чтобы избежать расширения оболочки и передать его, чтобы найти нетронутый.
| прочитав
, так как мой домашний каталог заполнен файлами с пробелами.
– matpie
23 October 2010 в 02:35
*. Orig
, оболочка будет расширять шаблон до, скажем, file1.orig file2.orig ...
, так что locate
не увидит точную строку *. orig
как следует.
– enzotib
23 October 2010 в 10:39
Команда locate *.orig | xargs rm действительно работает, но то, что происходило, было то, что locate находил файлы *.orig в корзине мусора, а rm выплевывает ошибку No such file or directory при попытке удалить файлы в корзине .
locate не выполняет globbing, но оболочка делает. Оболочка расширяет * .orig до того, что она находит в текущем каталоге, который соответствует * .orig.
Просто используйте
locate .orig
, и если это даст вам то, что вам нужно
locate .orig | xargs rm
, или, как сказал enzotib
locate -0 .orig | xargs -0 rm
, если у вас есть пробелы в именах файлов.
Трюк: Сохраните все пути в файле tmp. затем, Loop на нем:
#!/bin/bash
locate .orig /tmp/tmp.txt
while read line
do
pth=$line
rm "$pth"
done < /tmp/tmp.txt
rm -rf /tmp/tmp.txt
Трюк: Сохраните все пути в файле tmp. затем, Loop на нем:
#!/bin/bash
locate .orig /tmp/tmp.txt
while read line
do
pth=$line
rm "$pth"
done < /tmp/tmp.txt
rm -rf /tmp/tmp.txt
Команда locate *.orig | xargs rm действительно работает, но то, что происходило, было то, что locate находил файлы *.orig в корзине мусора, а rm выплевывает ошибку No such file or directory при попытке удалить файлы в корзине .
locate не выполняет globbing, но оболочка делает. Оболочка расширяет * .orig до того, что она находит в текущем каталоге, который соответствует * .orig.
Просто используйте
locate .orig
, и если это даст вам то, что вам нужно
locate .orig | xargs rm
, или, как сказал enzotib
locate -0 .orig | xargs -0 rm
, если у вас есть пробелы в именах файлов.
Трюк: Сохраните все пути в файле tmp. затем, Loop на нем:
#!/bin/bash
locate .orig /tmp/tmp.txt
while read line
do
pth=$line
rm "$pth"
done < /tmp/tmp.txt
rm -rf /tmp/tmp.txt
Команда locate *.orig | xargs rm действительно работает, но то, что происходило, было то, что locate находил файлы *.orig в корзине мусора, а rm выплевывает ошибку No such file or directory при попытке удалить файлы в корзине .
locate не выполняет globbing, но оболочка делает. Оболочка расширяет * .orig до того, что она находит в текущем каталоге, который соответствует * .orig.
Просто используйте
locate .orig
, и если это даст вам то, что вам нужно
locate .orig | xargs rm
, или, как сказал enzotib
locate -0 .orig | xargs -0 rm
, если у вас есть пробелы в именах файлов.
Трюк: сохраните все пути в файле tmp. затем, Loop на нем:
#! / bin / bash найти .orig /tmp/tmp.txt во время чтения строки do pth = $ line rm "$ pth" done & lt; /tmp/tmp.txt rm -rf /tmp/tmp.txt
Команда находит * .orig | xargs rm
действительно работает, но то, что происходило, заключалось в том, что locate
находил файлы *. orig
в корзине мусора и rm
spits (d4) Нет такого файла или каталога при попытке удалить файлы в корзине.
locate не делает globbing, но оболочка делает. Оболочка расширяет * .orig до того, что она находит в текущем каталоге, который соответствует * .orig.
Просто используйте
найдите .orig
, и если это доставит вам то, что вам нужно
locate .orig | xargs rm
или, как упоминалось enzotib
locate -0 .orig | xargs -0 rm
, если у вас есть пробелы в именах файлов.
Команда находит * .orig | xargs rm
действительно работает, но то, что происходило, заключалось в том, что locate
находил файлы *. orig
в корзине мусора и rm
spits (d4) Нет такого файла или каталога при попытке удалить файлы в корзине.
locate не делает globbing, но оболочка делает. Оболочка расширяет * .orig до того, что она находит в текущем каталоге, который соответствует * .orig.
Просто используйте
найдите .orig
, и если это доставит вам то, что вам нужно
locate .orig | xargs rm
или, как упоминалось enzotib
locate -0 .orig | xargs -0 rm
, если у вас есть пробелы в именах файлов.
Трюк: сохраните все пути в файле tmp. затем, Loop на нем:
#! / bin / bash найти .orig /tmp/tmp.txt во время чтения строки do pth = $ line rm "$ pth" done & lt; /tmp/tmp.txt rm -rf /tmp/tmp.txt
Команда находит * .orig | xargs rm
действительно работает, но то, что происходило, заключалось в том, что locate
находил файлы *. orig
в корзине мусора и rm
spits (d4) Нет такого файла или каталога при попытке удалить файлы в корзине.