Я пробовал два следующих CMD, чтобы показать содержимое всех файлов в текущем каталоге. Я хочу знать, почему один работает, другой - нет.команда linux: показать содержимое всех файлов
ls | xargs cat # does not work, No such file or directory
find . | xargs cat # works
cat
это просто пример, это может быть любой CMD, который принимает имя файла в качестве параметра.
--------------------------------- Обновление ------------ ---------------------
Вот некоторые наблюдения с моего ПК.
$ echo 1 > test1.txt
$ echo 2 > test2.txt
$ echo 3 > test3.txt
$ ls
test1.txt test2.txt test3.txt
$ ls *.txt | xargs cat
cat: test1.txt: No such file or directory
cat: test2.txt: No such file or directory
cat: test3.txt: No such file or directory
$ find . -name '*.txt' | xargs cat
2
1
3
Я не могу воспроизвести поведение, о котором вы сообщаете. Я бы предположил, что это функция имен файлов, которые вы используете. Если я использую имена файлов с пробелами в (например), то я могу получить 'ls | xargs cat' не работает, но команда find, которую вы даете, тоже не работает! Поэтому вам нужно сделать немного больше работы, выясняя, при каких условиях возникает эта проблема. – Vorsprung
@Vorsprung спасибо за ваш ответ. Я добавил «обновление» в своем исходном сообщении, в котором содержатся результаты, полученные с моего компьютера. Пожалуйста, проверьте это. –
ls aliased ни к чему? Формат, который вы видите, указывает не, но, возможно, попробуйте с \ ls, чтобы быть уверенным ... – timdykes