Как проверить наличие ~ файлов приложения / x-trash

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

find . -type f -name "CMakeList.txt" -print

Приведенная выше команда выполняет поиск для файла рекурсивно из текущей папки и всех подкаталогов ниже.

1
19.08.2017, 16:58
2 ответа

Предполагая, что вы просто хотите найти любой файл, чье имя совпадает с *~или .*~(, это обычно файлы резервных копий, оставленные редактором ), тогда этот единственный вызов findсделает это за вас :

. ]
find /var/www/html/mypath/ -type f \( -name '*~' -o -name '.*~' \) -print 

Вы можете вставить туда -maxdepth 6, если считаете, что это имеет смысл:

find /var/www/html/mypath/ -maxdepth 6 -type f \( -name '*~' -o -name '.*~' \) -print 

Чтобы удалить найденные файлы, просто добавьте -deleteв конец команды.


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

2
27.01.2020, 23:33

следующее делает то, что мне нужно:

#!/bin/sh

cd '/var/www/html/mypath/'

for i in `find '/var/www/html/mypath/' \( -name '*~' -o -name '.*~' \) -type f`; do

    echo 'file to be removed:  '$i
    mv $i   '/var/www/html/trashTest'
done
0
27.01.2020, 23:33

Теги

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