Find
處理 find 命令的工作目錄
我將 pdf 文件傳遞給腳本並提取各個部分(例如路徑、名稱、副檔名),以便我可以找到一些儲存在 org 文件中的相關評論。
想要處理目前工作目錄中不包含路徑的文件(例如
file.pdf
,而不是./file.pdf
or/path/file.pdf
)。目前我有一個問題,因為我必須設置fdir
.for fl in "$@"; do fnme=${fl##*/} fext=${fl##*.} fdir=${fl%/*} fnam=${fnme%.*} find "$fdir" -type f -name "${fnam}.org" done
如果您使用該實用程序
dirname
,它將正確返回.
其中沒有目錄路徑的路徑名參數:for pathname do name=$( basename "$pathname" ) find "$( dirname "$pathname" ) -name "${name%.*}.org" -type f done
如果您知道您正在處理以 結尾的文件名
for pathname do find "$( dirname "$pathname" ) -name "$( basename "$pathname" .pdf ).org" -type f done
如果你有
zsh
外殼,你可以使用for pathname find $pathname:h -name $pathname:t:r.org -type f done
:h
返迴路徑名的“頭”,即目錄路徑組件,而:t
返回“尾”,即文件名組件。你會得到一個文件名的無副檔名“根”:r
。如果您只對查看與原始文件相同的目錄感興趣,那麼您還需要限制這樣
find
做的遞歸。您可以-maxdepth 1
使用find
.