mv \~ ~/albumName.rar
mv '~' ~/albumName.rar
mv ./~ ~/albumName.rar
Можно всегда защищать символ, который имеет особое значение в оболочке путем помещения обратной косой черты перед ним.
Можно всегда говорить оболочке интерпретировать последовательность буквально путем помещения его в одинарных кавычках. Единственный символ, что Вы не можете вставить такую литеральную строку, является самой одинарной кавычкой, так как это указывает на конец литеральной строки. Можно использовать '\''
вместо этого; это означает “конец литерала, символа '
, запустите литерала”, но можно думать о нем как о странном способе поместить одинарную кавычку в литеральной строке в одинарных кавычках.
Символ ~
является только особенным в начале пути, поэтому если Вы помещаете признак каталога, ~
будет название файла в этом каталоге.
Обратите внимание на это, если имя файла начинается -
, только последний из этих трех методов будет работать. Это вызвано тем, что -
не является особенным для оболочки; это имеет особое значение к команде: это указывает на опцию. Другой способ защитить -
против этого особого значения должен поместить специальную опцию --
перед ним: --
на командной строке указывает на конец опций, только имена файлов (или другие аргументы неопции) могут прибыть после него.
Обратите внимание также, что команда, которую Вы показываете, должна была скопировать файл в Ваш корневой каталог, как ~
символ должен был быть интерпретирован оболочкой. Возможно, что Вы ввели с опечаткой и создали файл, которым это не называют ~
. Выполненный ls -q
или ls -Q
видеть, содержит ли имя файла непечатный символ. Если это не обеспечивает визуального признака, попробовать ls | od -t o1
, который покажет восьмеричный код для каждого байта в имени файла. В ksh, ударе или zsh, можно использовать $'\123'
в командной строке для определения символа его восьмеричным кодом. С другой стороны, Вы можете находить шаблон, который соответствует файлу. Например, если Вы решаете, что длина имени файла равняется 3, и что единственные другие файлы, длина которых равняется 2, foo
и bar
, можно переместить файл с
mv ./[^bf]?? ~/albumName.rar
И если Вы готовы использовать мышь, и имя состоит из печатаемых символов, которые Вы не знаете, как ввести: вставка копии имя файла от вывода ls
.
Добавление этого в Ваш .bashrc.zshrc файл позволило бы Вам копировать поведение, которое я описал:
#in .{bash,zsh}rc file
rn () {
local D="${PWD##*/}"
cd .. && mv -- "$D" "$1" && cd -- "$1"
}
#in terminal
~/tmp $ rn tmp2
~/tmp2 $
[1] ${PWD##*/}
взятый от этого ТАК Вопрос
$mv /tmp /tmp2
но приближаться tmp2
, необходимо будет сделать
$cd ..
$cd tmp2
mv ../dir ../dir2
но затем Вы могли бы получить ошибки как каталог, не найденный или ls, не работающий f, Вы не повторно входите в каталог с новым именем.
в "одной команде":
mv ../dir ../dir2 && cd ../dir2