Выполнить команду с параметром каждое имя файла в папке

Я хотел бы выполнить команду, давайте назовем ее abc и добавим в качестве параметра каждое имя файла в текущей папке. Как я могу сделать это в C Shell (или другом языке сценариев)?

2 ответа

С помощью csh или же tcshэто перебирает все файлы и каталоги в текущем каталоге. Я использовал цитаты вокруг $i подстановка переменных, если в некоторых именах есть пробелы.

foreach i (*)
   abc "$i"
end

Если вы хотите получить только файлы, а не каталоги, используйте -f тестовое задание. Здесь я использовал краткую форму оболочки C if заявление.

foreach i (*)
   if (-f "$i") abc "$i"
end

Посмотри на Xargs. Если ваша оболочка похожа на мою, следующее должно хорошо работать:

find . -type f -maxdepth 1 | xargs abc

Если вас беспокоят пробелы в именах файлов, см. Комментарий Дэниела Андерссона ниже.

Другие вопросы по тегам