Когда я использую команду cp или move в окне терминала, я в настоящее время нахожусь с bash в определенной папке, подобной этой.
NES@server:~/Desktop/dir1$
И теперь я хочу скопировать файл отсюда ~/anotherdir/dir2
в текущую выбранную папку в bash (dir1), я бы использовал команду
cp ~/anotherdir/dir2/file ~/Desktop/dir1
существует ли строка быстрого доступа для ссылки на текущий выбранный каталог? Так что в этом примере мне не нужно указывать полный путь к целевому каталогу, но команда знает, что он должен использовать текущий выбранный каталог в bash? т.е. как ~ обозначает домашний каталог?
..
означает один каталог ниже. Может использоваться несколько раз, т.е.cd ../..
..
перенесет вас в родительский каталог вашего текущего каталога. Хорошая точка зрения.popd
и ,pushd
но это превращается в эссе..
и..
уровень файловой системы, поэтому любая программа примет их. С другой стороны, ярлыки, такие как~
и~-
являются частью оболочки.cd -
; не знал, что он существует.Вы можете использовать $ (pwd), он будет преобразован в вывод команды pwd.
Пример:
источник
echo $PWD
../ представляет текущий каталог. Таким образом, вы можете использовать команду
cp ~/anotherdir/dir2/file ./
Это скопирует файл "файл" в рабочий каталог.источник
ln -s /some/long/path/to/get/to/cake
без второго аргумента , он поместитcake
символическую ссылку в ваш поток напрямую. Очень хорошо для ленивых. Сохраняет.
.Чтобы использовать текущий каталог в качестве каталога назначения, используйте одну точку '
.
'Длинный ответ
Используя ваш пример, вы наберете:
cp ~/anotherdir/dir2/file .
Чтобы увидеть точку
.
,..
и../../
имена каталогов в действии, скопируйте и вставьте следующие команды в вашем терминале:Вывод команды дерева выглядит так:
В
.
верхней части дерева выводится новый текущий каталог,a
кa/b/c
которому мы обратились с помощьюcd ../../
команды. Нижеa
мы видим подкаталогиa/b
,a/b/c
иa/b/c2
Построчный анализ
Сначала мы создали 4 директории в одной строке, используя
&&
для объединения несколько строк.Затем мы изменили каталог
a/b/c
, который является текущим каталогом для следующих команд копирования:cp
) мы устанавливаем адрес нашей текущей директории ( c ) с помощью.
...
.../c2
Затем, как было сказано ранее, мы изменили текущий каталог на
a
и запустилиtree
команду для отображения всех каталогов и файлов вa
.уборка
По завершении мы удаляем три каталога и файлы с помощью:
источник
Переменная окружения для текущего каталога составляет $ PWD
источник
Вы можете использовать точку (
.
),~+
расширение тильды ,pwd
команду или переменную $ PWD для представления текущего рабочего каталога (CWD). Все эти команды могут сделать это:mv file_old_dir .
mv file_old_dir ~+
mv file_old_dir $(pwd)
mv file_old_dir $PWD
источник
Да (как отмечали другие), текущим каталогом является ".", Поэтому вы можете запускать программы / скрипт из текущего каталога с помощью ./script (просто скрипт не будет работать, если только он не является частью PATH, что не рекомендуется хотя). Использование $ PWD или $ (pwd) немного излишне, даже если другие упоминали, что использование символа одной точки, безусловно, короче :) «..» является родительским каталогом, наверняка «/» является корневым каталогом. Также приятно упомянуть, что «cd -» поместит вас в предыдущий каталог, где вы были до того, как вы изменили cwd (текущий рабочий каталог). Это может быть также полезно в повседневной работе. Одна команда «cd» без какой-либо другой команды в командной строке переведет вас в «~» (ваш дом).
источник
$PWD
не является излишним при создании символических ссылок на абсолютные пути.