シェルスクリプトから絶対パスなしでファイル名を取得する方法

シェルスクリプトから絶対パスなしでファイル名を取得する方法

拡張子(.gz)を含むディレクトリのファイル名を印刷しようとしています。現在、絶対パスを印刷する次のシェルスクリプトがあります。ファイル名だけを印刷したいです。

誰でもこれについてアドバイスできますか?私はさまざまなアプローチを試しました。

#!/bin/bash

sourceFolder=/Users/rojadhanavath/Desktop/app/logs/*.gz

sleepTimeinMinutes=200

cd $sourceFolder

for f in $sourceFolder do
   echo " printing the file name $f" done

現在の出力は次のとおりです。

printing the file name
/Users/rojadhanavath/Desktop/app/logs/app-json.log copy 10.gz 
printing the file name
/Users/rojadhanavath/Desktop/app/logs/app-json.log copy 11.gz 
printing the file name
/Users/rojadhanavath/Desktop/app/logs/app-json.log copy 12.gz 
printing the file name
/Users/rojadhanavath/Desktop/app/logs/app-json.log copy 2.gz  printing
the file name /Users/rojadhanavath/Desktop/app/logs/app-json.log copy
3.gz

私はファイル名だけが欲しいです:

例えばapp-json.log copy 10.gz

ベストアンサー1

次のデフォルト名を使用できます$f

for f in $sourceFolder; do
    echo " printing the file name $(basename $f)"
done

またはすでにthisを使用しているので、cd $sourceFolder次のように動作します。

for f in *.gz; do
    echo " printing the file name $f"
done

おすすめ記事