Для меня есть 2 группы файлов, в которых можно определить $PATH:
1. Файлы bash, такие как ~/.profile, ~/.bashrc и их эквиваленты /etc
2. /etc/enviroment и ~/.pam _окружение
Некоторые из этих мест являются глобальными для всех пользователей, а некоторые зависят от пользователя.
Я рекомендую вам написать команду, которую вы использовали, в одном из этих мест, помня, что файлы с~работают только с пользователем, который использует домашний каталог, в котором находится файл.
Также помните, если вы пропишете путь, например, ~/.bashrc, будучи, например, пользователем Robertus, если вы измените на root, путь изменится на root, следуя его собственному ~/.bashrc и компании..
Надеюсь, мой ответ был вам полезен
Ага, printf
твой друг. Используйте %.2d
до 0 -дополните число до 2 цифр:
find. -mtime -5 -type f -exec ls -ltr {} \; |
awk '{printf "cp -p %s %.2d\n", $9, $7}'
Чтобы проиллюстрировать это, я выполнил следующее в файле, содержащем ваш исходный вывод:
$ cat file
cp -p./18587_96xxdata.txt 10
cp -p./16947_96xxdata.txt 8
cp -p./32721_96xxdata.txt 9
cp -p./32343_96xxdata.txt 9
cp -p./32984_96xxdata.txt 10
$ awk '{printf "%.2d\n", $NF}' file
10
08
09
09
10
Пожалуйста, обратите внимание на очень хорошее замечание , поднятое @edmorton . Разбор ls очень хрупок. Решение Эда намного лучше.
См.https://mywiki.wooledge.org/ParsingLsи https://mywiki.wooledge.org/Quotes, а затем сделайте это:
$ find. -mtime -5 -type f -printf "cp -p '%p' '%Ad'\n"
cp -p './bbbb.csv' '09'
cp -p './cccc.csv' '10'
cp -p './out1.txt' '09'
cp -p './out2.txt' '05'