Mevcut çalışma dizinini almak için PWD kullanıyorum. İki ebeveynin tam yolunu almak için kullanabileceğim bir SED veya regex var mı?bash betiği regex dizin yolunu yukarı almak için nth seviyeleri
cevap
Neden sed veya regex? Neden dirname
:
parent=`dirname $PWD`
grandparent=`dirname $parent`
Düzenleme:
@Daentyh görünüşe $()
POSIX uyumlu kabuklarda komut ikamesi için backquotes ``
fazla tercih edilir yorumlarda işaret ediyor. Onlarla deneyimim yok. Daha çok bilgi:
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03
Yani, bu sizin kabuk için geçerli olup olmadığını yapabilirsiniz (ki?) Kullanın:
parent=$(dirname $PWD)
grandparent=$(dirname $parent)
neden olmasın
"${PWD}/../.."
kullanılır?
Bu POSIX kabuklarda çalışması gerekir:
echo ${PWD%/*/*}
size mutlak bir yol yerine göreli bir verecektir hangi.
Yanıt bu olmalı. Bu kabul edilen cevaptan daha çok tekrar kullanılabilir. – melvynkim
sed veya regex, ancak bu keyfi ebeveyn miktarı ne yapar değil: Bu örnekte, 5 derin geçici dizine ben cd
, n=3
atamak ${PWD}
den n
seviyeleri yukarı göreli bir yol inşa yılında
$ cd $(mktemp -dp $(mktemp -dp $(mktemp -dp $(mktemp -d)))) && \
> n=3 && \
> readlink -f ${PWD}/$(for i in $(seq ${n}); do echo -n '../' ; done)
/tmp/tmp.epGcUeLV9q
ve -f, --canonicalize
sonucu readlink
ile.
- 1. Bash betiği
- 2. Dizin içeriği değiştiğinde bir bash betiği otomatik olarak nasıl çağrılır
- 3. Lua, bash betiği yürütmeyecek
- 4. Güçlü parola için Bash regex
- 5. Bash betiği Ubuntu Bash tarafından anlaşılmadı
- 6. Bash regex ungreedy maçı
- 7. Kendi kendini silme bash betiği
- 8. Bağımlılık ile bash betiği oluşturun
- 9. Bash betiği durduğunda komut çalıştır
- 10. Tam hiyerarşi yolunu almak için SQL sorgusu
- 11. Bash: geçerli dizin değişkeni
- 12. Webpy'de statik dizin yolunu değiştirme
- 13. Öğeyi almak için bir dizin kullanmak, Python
- 14. Bash betiği döngüsünde cat ifadesinin baskı çıktısı
- 15. linux bash betiği birden çok python çalıştırıyor
- 16. Git basıldıktan sonra bash betiği nasıl çalıştırılır
- 17. Bu bir bash mı? (Yukarı ok)
- 18. Bash regex değiĢtirmesindeki yakalamalara başvurma
- 19. Boş dizin içeriğine Döngü Bash
- 20. Bash Komut Dosyası Yinelemeli Dizin Ağacı
- 21. Bir Windows Bilgisayarının ağ kartı hızını almak için PowerShell betiği
- 22. rss besleme içeriğini almak için bir php betiği nasıl kullanılır?
- 23. <img/>'in mutlak yolunu almak
- 24. Bir bash komut dosyasında dizin ağacı yazdırmaya nasıl gidebilirim?
- 25. Bir dış ağ yolunu almak için bir CAShapeLayer kırpma
- 26. android iletişim fotoğraf için dosya sistemi yolunu almak
- 27. grails içinde upload benim dosyasının yolunu almak
- 28. ": nth-child()"
- 29. Yazdır n çağrıları seviyeleri?
- 30. Android - Mikrofon girişi seviyeleri?
Bu işe yaradı! – Steve
Bash'ı belirttiğinden beri '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'ile kullanmalısınız. – Daenyth
@Daenyth - doğru, soruya gerçekten "bash" özel olmadığı için soruyu (ya da yeniden etiketlememe izin ver) "sh" ya da "kabuk-komut dosyası" na yeniden işaret etmeyi önerdim. @Steve - Ne düşünüyorsun? –