Я хотел бы выполнить команду, назовем ее abc и добавить в качестве параметра каждое имя файла в текущей папке. Как я могу сделать это в C Shell (или другом языке сценариев)?
решение1
Используя csh
or 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
Если вас беспокоят пробелы в именах файлов, см. комментарий Дэниела Андерссона ниже.