Anderson M. Gomes'den gelen cevabı genişleterek , Bash, dizin yığındaki konumun nerede olduğunu ~N(veya ~+N) yazarak dizininizdeki herhangi bir dizine başvurmanızı sağlar N. Örneğin:
# go some places
$ cd /path/to/source/directory
$ pushd /path/to/destination/directory
$ pushd $HOME
$ pushd /tmp
# show the current dir stack
$ dirs -v
0 /tmp
1 ~
2 /path/to/destination/directory
3 /path/to/source/directory
Artık bir dosyayı geçmiş iki dizin arasına kopyalayabilirsiniz, ikisi de geçerli olanı değil:
cp -v ~3/file1.txt ~2
Orijinal posterin problemini çözmek için şunları yaparsınız:
$ cd /path/to/source/directory
$ pushd /path/to/destination/directory
# show the current dir stack
$ dirs -v
0 /path/to/destination/directory
1 /path/to/source/directory
# copy
cp -v ~1/file[123].txt .
Çok sayıda dosya ile, isimlerini bir manifest dosyasında listeleyebilir ve daha sonra kopyayı kaynak dizinden yapabilirsiniz:
$ cd /path/to/destination/directory
$ pushd /path/to/source/directory
# copy
cp -v $(cat files_to_copy.list) ~1
Ayrıca bakınız: Bash man sayfasının bu bölümü
Benzer şekilde, Tcsh'da dir dizinizdeki ikinci dizine işaret etmek için =2gösterimi (yerine ~2) kullanabilirsiniz.
Ayrıca bakınız: Tcsh man sayfasının bu bölümü
cdKomutu yazmanız gerekir , böylece yalnızcacd -önceki dizine geri gidebilir,cdkomutu geri çağırmak için yukarı ok vecpyerine olmak üzere satırı düzenleyebilirsinizcd. (ctrl-a (satır başlangıcı), alt-d (kill kelimesi)cp -a, ctrl-e (satır sonu)).