2017-07-31 59 views
1

我有一個腳本,它具有以下命令。我試圖編輯這樣一種方式,它只搜索路徑目錄中的文件,而不進入子目錄。這不是遞歸搜索使用find以非遞歸方式在目錄中搜索特定文件。 AIX

find {Path} -name「cor *」-type f -exec ls -l {} \;

示例:該命令應該只給cor123.log而不是cor456.log。目前它同時提供了

<Path> 
    ..cor123.log 
    <directory> 
     ..cor456.log 

我嘗試使用-maxdepth,但它在AIX中不受支持。普朗和深淵也沒有幫助。

將不勝感激任何幫助。由於

回答

0

您可以使用

find . -name . -o -prune 

查找文件和目錄的非遞歸。

所以你的情況這一項將工作:

find . -name . -o -prune -name 'cor*' -type f -exec ls -l {} \; 
+0

我試過了,它沒有工作。沒有返回任何文件 –

+0

你用你的實際路徑代替了這個點嗎?第一個例子在你的環境中工作嗎? – MichalH

+0

是的,我替換了點(找到後),但沒有得到結果。第一個命令不起作用。 –

0

你需要find只選擇文件?
當你知道開始cor所有文件都是邊條的文件,你可以使用
ls -l ${Path}/cor*

ls -l ${Path}/cor*.log

當您需要-type f,你可以嘗試過濾結果。
文件名不能有/,因此請在路徑後用/刪除所有內容。
我們不知道$ {Path}的最後一個字符。它可以是/,這將使過濾器無用。在查找下一個/之前,路徑中至少需要一個字符。

find "${Path}" -name "cor*" -type f 2>/dev/null| grep -Ev "${Path}..*/" | xargs -ls 
相關問題