Переименовать каталог из каталога?

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.

1
19.07.2013, 02:32
3 ответа

Добавление этого в Ваш .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##*/} взятый от этого ТАК Вопрос

1
27.01.2020, 23:53
$mv /tmp /tmp2 

но приближаться tmp2 , необходимо будет сделать

$cd ..

$cd tmp2
0
27.01.2020, 23:53

mv ../dir ../dir2

но затем Вы могли бы получить ошибки как каталог, не найденный или ls, не работающий f, Вы не повторно входите в каталог с новым именем.

в "одной команде":

mv ../dir ../dir2 && cd ../dir2
0
27.01.2020, 23:53
  • 1
    , я хочу остаться в каталоге, который является быть перемещенным в новый каталог. –  mirandalol 18.07.2013, 12:53
  • 2
    можно все еще работать, но команда pwd не покажет корректный путь, для того, что необходимо повторно войти в каталог. –  BitsOfNix 18.07.2013, 12:58

Теги

Похожие вопросы