Насколько я понимаю, следующее должно означать то же самое:
ls -1 | xargs file {}
ls -1 | xargs -I{} file {}
если опция -I не указана, по умолчанию используется -I {}.
Я хочу вывести список всех файлов в текущем каталоге и запустить команду file
для каждого из них. У некоторых есть пробелы в их именах. Однако я заметил разницу. Увидеть ниже:
$ ls -1
Hello World
$ ls -1 | xargs file {}
{}: ERROR: cannot open `{}' (No such file or directory)
Hello: ERROR: cannot open `Hello' (No such file or directory)
World: ERROR: cannot open `World' (No such file or directory)
$ ls -1 | xargs -I{} file {}
Hello World: directory
Если явно указано -I {}, пропуски в именах файлов обрабатываются как и ожидалось.