Bash

如何使 ls 和 xargs 組合省略路徑

  • April 19, 2020

我有一個名為 lib 的文件夾。在那個文件夾中有一些文件。我想獲取以.jar 結尾的所有文件的名稱,並將它們連接成一行,用空格分隔。我根本不想要路徑名。

我試過這個:

ls lib/*.jar | xargs

輸出是

lib/file1.jar lib/file2.jar

但我想要得到的是

file1.jar file2.jar

我怎樣才能做到這一點?

我也試過 find 但我遇到了同樣的問題

find lib -name *.jar | xargs

還有一個find lib -maxdepth 1 -name *.jar -printf '%f\n' | xargs

         %f     File's  name  with any leading directories removed (only
                the last element).

這對我有用,儘管似乎應該有一種更簡單(即不那麼老套和漂亮)的方式:

$ ls lib/*.jar | xargs -n 1 基本名稱 | xargs

引用自:https://serverfault.com/questions/547870