Если я нахожусь ~/blob
и у меня есть файл в~/blob/a_long_directory_name/c/x.x
я могу печатать
mv blob/a_long_directory_name/c/x.x blob/a_long_directory_name/even_more/y.y
Есть ли какой-нибудь ярлык, с помощью которого я могу набрать что-то более короткое, использующее путь к каталогу в первом параметре (но не мой текущий каталог), например
mv blob/a_long_directory_name/c/x.x $same_dir/y.y
где что-то вроде $same_dir
бы указывало на DIR парам 1
command-line
rename
cp
Майкл Даррант
источник
источник
even_more
относительному пути ...С Bash вы можете использовать расширение скобки
источник
Вы можете использовать возможности подстановки текста вашей оболочки. В
bash
, вы можете использовать зверя, как:Чтобы сломать это:
!#
текущая строка набрана:$
просит выбрать последнее слово (замените на число,n
чтобы выбратьn
'слово) рассматриваемой строки (!#
в данном случае). Последнее слово в строке, набранной до сих пор, будет предыдущим словом.:gs^xx^yy
выполняет глобальное (g
) текстовое замещение (s
) в полученном слове, заменяя «xx» на «yy».^
это просто разделитель дляs
команды, разрешающей использование/
в ваших шаблонах.Этот метод немного более общий, поскольку он позволяет заменить любую часть пути ('xx') любым другим словом ('yy').
Наконец, как и при любых манипуляциях с историей, хорошо иметь соответствующие параметры оболочки (например, в
~/.bashrc
). В таком случаеПосле нажатия кнопки возврата отобразится отредактированная строка, поэтому вы все еще можете ее отредактировать и проверить на наличие ошибок.
Почему вы используете такую конструкцию, я не уверен, но в этом случае она работает.
источник
c/x.x
сevenmore/y.y
сохранением исходного префикса пути.$PWD
). Конечно, возможно, это не самое элегантное, но это указывает на тот факт, что в оболочке есть текстовые замены и обозначения слов, которые некоторые пользователи все еще могут найти полезными для исследования.