Когда я использую команду cp или move в окне терминала, я в настоящее время нахожусь с bash в определенной папке, подобной этой.
NES@server:~/Desktop/dir1$
И теперь я хочу скопировать файл отсюда ~/anotherdir/dir2
в текущую выбранную папку в bash (dir1). Я бы использовал команду
cp ~/anotherdir/dir2/file ~/Desktop/dir1
, существует ли строка ярлыка для ссылки текущий выбранный каталог? Так что в этом примере мне не нужно указывать полный путь к целевому каталогу, но команда знает, что он должен использовать текущий выбранный каталог в bash? т.е. как ~ обозначает домашний каталог?
Вы можете использовать $ (pwd), это разрешит вывод команды pwd.
Пример:
echo $(pwd)
Ваш текущий каталог - .
. Итак, cp /foo/fam/foo .
копирует файл в ваш текущий каталог.
Аналогичная конструкция для «одного каталога вверх» или родительского каталога вашего текущего рабочего каталога, состоит из двух точек, то есть ..
. (Спасибо @djeikyb.)
Итак, из /usr/house/firstfloor/basement
, cd ..
поднимает вас на один уровень до /usr/house/firstfloor
.
В том же примере (начиная с /usr/house/firstfloor/basement
, команда cd ../..
приведет вас к /usr/house
.
. Вы также можете использовать $PWD
с echo
, чтобы получить текущий каталог:
echo $PWD
Между прочим, $OLDPWD
даст вам ваш предыдущий каталог.
Для использования текущего каталога в качестве целевого каталога используют единственную точку'.
'
Используя Ваш пример Вы ввели бы: cp ~/anotherdir/dir2/file .
Видеть точку .
, ..
и ../../
имена каталогов в действии, скопируйте и вставьте следующие команды в свой Терминал:
mkdir a && mkdir a/b && mkdir a/b/c && mkdir a/b/c2
cd a/b/c
cp /etc/default/grub .
cp /etc/default/grub ..
cp /etc/default/grub ../c2
cd ../../
tree
Вывод от древовидной команды появляется как это:
.
└── b
├── c
│ └── grub
├── c2
│ └── grub
└── grub
3 directories, 3 files
.
во главе древовидного вывода представляет новый текущий каталог a
который является прародителем a/b/c
по которому мы переместились к использованию cd ../../
команда. Внизу a
мы видим подкаталоги a/b
, a/b/c
и a/b/c2
Сначала мы создали 4 каталога на одной строке при помощи &&
присоединиться к нескольким строкам вместе.
Затем мы изменились на каталог a/b/c
, который является текущим каталогом для следующих команд копии:
cp
) мы устанавливаем место назначения на наш текущий каталог (c) с .
...
.../c2
Затем как указано ранее, мы изменили текущий каталог на a
и работал tree
управляйте для отображения всех каталогов и файлов под a
.
После того, как мы будем сделаны, мы удаляем эти три каталога и файлы с:
cd ~/
rm -r tree
./ представляет текущий каталог. Таким образом, вы можете использовать команду cp ~/anotherdir/dir2/file ./
. Она скопирует файл «file» в рабочий каталог.
Вы можете использовать точку (.
), расширение тильды ~+
, команду 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» без какой-либо другой команды в командной строке переведет вас в «~» (ваш дом).