特定のフォルダにある名前不明のファイルを、別フォルダに移動させる

業務でちょっとだけ困ったので、解決方法を載せます

※といっても対処療法なので・・・

 

・背景

特定のフォルダ(/tmp/bk/)に、毎日1回特定のファイルが作られます

しかし、特定のファイルは命名規則が決まっていません

特定のファイルを1つだけ取得して、移動させたい(コピーしたい)のですが、

cpコマンドだと肝心のファイル名を指定できないのでコマンドが使えない・・・

 

で、調べたところ、basenameというコマンドが使えそう

*で指定すると、一番最初にヒットしたファイルの名前を表示してくれるようです

 

ということで、以下のようにしました

 

・結果

cp $(basename /tmp/bk/*) /test/dir/sample.txt

 

・余談

そのあと、ファイルが複数作られたときに更新日が新しいものを取り出したい、となりまして・・・

以下のように作り直しました

 

cp $(ls -1 -t | head -1) /test/dir/sample.txt

 

色々な形で実装できるので、どういう形がいいか悩みますね・・・

 

 

以上