У Linux я іноді перейменую такі файли:
mv dir1/dir2/dir3/file.txt dir1/dir2/dir3/file.txt.old
Зауважте, що я хочу просто перейменувати файл, а не переміщувати його в інший каталог.
Чи є команда, яка дозволила б мені зробити скорочену версію цієї команди? Я думаю про щось на кшталт:
mv dir1/dir2/dir3/file.txt file.txt.old
а може навіть щось подібне (просто додати ім’я):
mv dir1/dir2/dir3/file.txt {}.old
Моя мета - не потрібно знову вказувати повний шлях.
Я знаю, що ті "приклади", які я написав, не працюють, але це лише ідея того, що я хочу досягти.
Я не хочу вводити компакт-диски до каталогу.
(cd dir1/dir2/dir3 && exec mv file.txt{,.old})
фактично така ж продуктивність, як і код без підпроцесу, оскільки ви exec
уникаєте fork()
під час виклику зовнішньої команди, тому у вас є рівно одна форка в будь-якому випадку.