Я начинаю с файла, содержащего список сотен файлов (полные пути) в случайном порядке. Я хотел бы перечислить детали десяти последних файлов в этом списке. Это моя наивная попытка:
$ ls -las -t `cat list-of-files.txt` | head -10
Это работает, если в файлах нет пробелов, но происходит сбой, если они есть, поскольку эти файлы разбиты на пробелы и рассматриваются как отдельные файлы. Файл "Здравствуй, мир" дает мне:
ls: hello: No such file or directory
ls: world: No such file or directory
Я попытался процитировать файлы в исходном файле со списком файлов, но здесь документ по-прежнему разделяет файлы на пробелы в именах файлов, рассматривая кавычки как часть имен файлов:
$ ls -las -t `awk '{print "\"" $0 "\""}' list-of-files.txt` | head -10
ls: "hello: No such file or directory
ls: world": No such file or directory
Единственный способ, которым я могу думать об этом, - это отобразить каждый файл по отдельности (возможно, используя xargs) и создать промежуточный файл с списками файлов и датой в порядке сортировки в качестве первого поля в каждой строке, а затем отсортировать этот промежуточный файл. Однако это кажется немного громоздким и неэффективным (сотни команд ls, а не одна или две). Но это может быть единственный способ сделать это?
Есть ли способ передать "ls" список файлов для обработки, где эти файлы могут содержать пробелы - кажется, это должно быть просто, но я в замешательстве.