Подтвердить что ты не робот

Команда 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.

4b9b3361

Ответ 1

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

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

OR

ls -lrt -d -1 $PWD/*

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

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

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

Ответ 2

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

Ответ 3

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

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

вместо:

ls -ltr /mig/mthome/09/log

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

Ответ 4

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

ls -1 | xargs readlink -f

Ответ 5

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

ls $(pwd)/*

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

ls -alrt $(pwd)/*

Ответ 6

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

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