Удалить соответствующий файл из каждой подпапки текущего каталога

Я использовал этот файл для копирования в каждом каталоге:

find -type d -maxdepth 1 -print0 | xargs -0 -n1 cp .htaccess 

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

3 Solutions collect form web for “Удалить соответствующий файл из каждой подпапки текущего каталога”

Если я правильно понимаю ваше описание, вы хотите удалить .htaccess из подкаталогов текущего каталога, но не из их подкаталогов. Другими словами, вы хотите удалить foo/.htaccess но не foo/bar/.htaccess . Тогда это просто:

 rm */.htaccess 

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

 for d in */; do cp -p .htaccess "$d"; done 
 find /path/to/dir -name .htaccess -delete 

Следующее предполагает, что вы ранее запускали find -type d -maxdepth 1 -print0 | xargs -0 -n1 cp .htaccess find -type d -maxdepth 1 -print0 | xargs -0 -n1 cp .htaccess из того же каталога, которым вы будете запускать этот:

 find . -maxdepth 2 -type f -name .htaccess -exec rm -v {} \; 

Параметр -v (verbose) является необязательным, но он помогает увидеть, какие файлы фактически удалены.

  • Почему обратная косая черта преобразуется в пространство в выражении эха, если IFS = '\'?
  • Экран - наследует среду текущего окна
  • Массивы в Unix Bourne Shell
  • Помещение одной цитаты в имя файла
  • Как запустить веб-страницу в фоновом режиме?
  • Уменьшить резервный файл журнала
  • Почему двойные кавычки и backquotes в сценарии оболочки?
  • Разница между systemd и программой запуска терминала
  • sed восклицательные знаки
  • Почему lvextend выделяет меньше указанного пространства?
  • Как объединить и суммировать поля на основе 2 столбцов
  • Linux и Unix - лучшая ОС в мире.