Shell如何使用
如何使用 find
轉到該文件的目錄
我想找到一個文件,然後進入包含它的目錄。我試過
find /media/storage -name "Fedora" | xargs cd
了,但當然,我is not a directory
犯了錯誤。如何使用一行命令進入其父目錄?
至少如果你有 GNU
find
,你可以-printf '%h'
用來獲取目錄%h Leading directories of file's name (all but the last ele‐ ment). If the file name contains no slashes (since it is in the current directory) the %h specifier expands to ".".
所以你可能會做
cd "$(find /media/storage -name "Fedora" -printf '%h' -quit)"
在多個文件匹配的情況下,
-quit
應該防止多個參數cd
。
類似於steeldriver 的解決方案,但結合使用
-execdir
(如果您find
支持它,如 GNU 或 FreeBSD 的find
)pwd
:cd "$(find /media/storage -name "Fedora" -execdir pwd \; -quit)"
-quit
是可選的,以防只有一個結果並且爬取整個目錄沒有問題。在 NetBSD-exit
上它存在,而在 OpenBSD 上它不存在。