Ярлык командной строки для текущего каталога похож на ~ для домашнего каталога?

Когда я использую команду cp или move в окне терминала, я в настоящее время нахожусь с bash в определенной папке, подобной этой.

NES@server:~/Desktop/dir1$

И теперь я хочу скопировать файл отсюда ~/anotherdir/dir2 в текущую выбранную папку в bash (dir1). Я бы использовал команду

cp ~/anotherdir/dir2/file ~/Desktop/dir1

, существует ли строка ярлыка для ссылки текущий выбранный каталог? Так что в этом примере мне не нужно указывать полный путь к целевому каталогу, но команда знает, что он должен использовать текущий выбранный каталог в bash? т.е. как ~ обозначает домашний каталог?

23
задан 11 February 2011 в 18:49

7 ответов

Вы можете использовать $ (pwd), это разрешит вывод команды pwd.

Пример:

echo $(pwd)
0
ответ дан 11 February 2011 в 18:49

Ваш текущий каталог - .. Итак, 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 даст вам ваш предыдущий каталог.

0
ответ дан 11 February 2011 в 18:49

Для использования текущего каталога в качестве целевого каталога используют единственную точку'.'

Длинный ответ

Используя Ваш пример Вы ввели бы: 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) с ..
  • Во второй копии управляют, чтобы мы установили место назначения на родительский каталог (b) с ...
  • В третьей копии управляют, чтобы мы установили место назначения на одноуровневый каталог (c2) с ../c2

Затем как указано ранее, мы изменили текущий каталог на a и работал tree управляйте для отображения всех каталогов и файлов под a.

Очистка

После того, как мы будем сделаны, мы удаляем эти три каталога и файлы с:

cd ~/
rm -r tree
2
ответ дан 11 February 2011 в 18:49

./ представляет текущий каталог. Таким образом, вы можете использовать команду cp ~/anotherdir/dir2/file ./. Она скопирует файл «file» в рабочий каталог.

0
ответ дан 11 February 2011 в 18:49

Переменная среды для текущего каталога - $ PWD

echo $PWD
.
0
ответ дан 11 February 2011 в 18:49

Вы можете использовать точку (.), расширение тильды ~+ , команду pwd или переменную $ PWD для представления текущего рабочего каталога (CWD). Все эти команды могут сделать это:

  1. mv file_old_dir .
  2. mv file_old_dir ~+
  3. mv file_old_dir $(pwd)
  4. mv file_old_dir $PWD
  5. [ 1112]
0
ответ дан 11 February 2011 в 18:49

Да (как уже отмечалось), текущим каталогом является «.», Поэтому вы можете запускать программы / скрипт из текущего каталога с помощью ./script (просто скрипт не будет работать, если только он не является частью PATH, что не рекомендуется, хотя). Использование $ PWD или $ (pwd) немного излишне, даже если другие упоминали, что использование символа одной точки, безусловно, короче :) «..» является родительским каталогом, наверняка «/» является корневым каталогом. Также приятно упомянуть, что «cd -» поместит вас в предыдущий каталог, где вы были до того, как вы изменили cwd (текущий рабочий каталог). Это может быть также полезно в повседневной работе. Одна команда «cd» без какой-либо другой команды в командной строке переведет вас в «~» (ваш дом).

0
ответ дан 11 February 2011 в 18:49

Другие вопросы по тегам:

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