Рассмотрим что-то вроде B / A / C.txt
.
Как можно Я перемещаю файл C.txt
в его родительский родительский каталог, поэтому результатом будет B / C.txt
?
Вы можете добиться этого, выполнив
mv B / A /C.txt B /
или
mv B / A / C.txt B / C.txt
или
cd B/A/
mv C.txt ..
на терминале Linux mv C. txt ../ .. уловка:
$ mkdir -p /tmp/A/B # create as a temporary dir
$ cd /tmp/A/B # get into dir
$ pwd # show were you are
/tmp/A/B
$ echo 'foo' > C.txt # create a file containing text foo
$ mv C.txt ../.. # move file into parent dir of parent dir
$ cd ../../ # get into there
$ pwd # are we there?
/tmp
$ cat C.txt # check your file.
foo
Один из способов:
mv B/A/C.txt B/
Или
cd B/A/
mv C.txt ..
В образовательных целях
$ man bash
Введите /
и введите ^ + Parameter Expansion
, затем нажмите ENTER
Или изучите руководства Bash на www.tldp.org
Пример для изучения:
$ f="B/A/C.txt" $ mkdir -p "${f%/*}" $ touch "$f" $ find "${f%%/*}" ... $ mv "${f}" "${f%/*}/.." $ find "${f%%/*}" B B/C.txt B/A
Обратите внимание: это НЕ общий ответ, здесь есть оговорки; но может быть сочтен очень близким к этому.
Еще предстоит изучить, перезапущено с нуля:
$ f="B/A/C.txt" $ mkdir -p "${f%/*}" $ touch "$f" $ ( cd ${f%/*} && mv ${f##*/} .. )