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

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

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

решение1

Используя cshor tcsh, это переберет все файлы и каталоги в текущем каталоге. Я использовал кавычки вокруг $iподстановки переменных на случай, если в некоторых именах есть пробелы.

foreach i (*)
   abc "$i"
end

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

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

решение2

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

find . -type f -maxdepth 1 | xargs abc

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

Связанный контент