Команда Unix ls: показать полный путь при использовании опций


Я часто использую эту команду списка в Unix (AIX / KSH):

ls -Artl

он отображает файлы следующим образом:

-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 test1.txt
-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 test2.txt

Я хотел бы изменить команду таким образом, что отображается полный путь к файлу. Например:

-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 /usr/test1.txt
-rw-r--r-- 1 myuser mygroup 0 Apr 2 11:59 /usr/test2.txt

какие идеи?

я нашел несколько методов разрешения с помощью pwd или find но - насколько я вижу - это не работает работа, если я хочу сохранить ls параметры.

6   51   2011-04-07 16:14:04

6 ответов:

Как насчет этого трюка...

ls -lrt -d -1 $PWD/{*,.*}

OR

ls -lrt -d -1 $PWD/*

Я думаю, что у этого есть проблемы с пустыми каталогами, но если у другого плаката есть настройка, я обновлю свой ответ. Кроме того, вы уже можете это знать, но это, вероятно, будет хорошим кандидатом на псевдоним, учитывая его длину.

[обновление] добавлены некоторые настройки на основе комментариев, Спасибо, ребята.

[update] как указано в комментариях, вам может потребоваться настроить выражения сопоставления в зависимости от shell (bash vs zsh). Я повторно добавил свою старую команду для справки.

попробуйте это, работает для меня:ls -d /a/b/c/*

используйте эту команду:

ls -ltr /mig/mthome/09/log/*

вместо:

ls -ltr /mig/mthome/09/log

чтобы получить полный путь в списке.

Я использую эту команду:

ls -1 | xargs readlink -f

оптимизирован из ответа spacedrop ...

ls `pwd`/*

и вы можете использовать параметры ls

ls -alrt `pwd`/*

вы можете объединить команду find и команду ls. Используйте путь (.) и селектор ( * ), чтобы сузить файлы, которые вы ищете. Окружить команду в обратные кавычки. Аргумент to-name-это doublequote star doublequote, если вы не можете его прочитать.

ls -lart `find . -type f -name "*" `