私はLinuxについてもっと学び、今朝awkコマンドに焦点を当てました。私が働こうとしてきたコマンドは以下の通りです。AWK出力を使用したLinux CP
ls -lRt lpftp.* | awk '{print $7, $9}' | mkdir -p $(awk '{print $1}') | ls -lRt lpftp.* | cp $(awk '{print $9, $7}')
私は、ディレクトリ内の各ファイルを、最後に変更されたファイルに基づいてサブディレクトリに移動しようとしています。コマンドは最初に必要なファイルだけを出力し、mkdirを使用して、最後に変更された日に基づいてフォルダを作成します。私はそれの後にやりたいことは、コマンドが今、それは01のフォルダにすべてのファイルを移動し、すべてのディレクトリに次のテキストに一度
cp: 0653-436 12 is a directory.
Specify -r or -R to copy.
をプリントアウトしかしとして、それに関連付けられたディレクトリに各ファイルを移動しています。
誰でもこの問題を解決できる方法を知っていますか?もしそれについてもっと良い方法があれば?
なぜ 'mkdir'の出力を' ls'にパイプしていますか? 'mkdir'は(エラーメッセージ以外の)出力を生成せず、' ls'はその入力を使いません。 – Barmar
2番目のLSステートメントの理由は、mkdirの後に元のLSのファイル名にアクセスできなかったためです。そのリストを再作成するためにもう一度実行しました。そこには良い方法がありますか? – Cronisej
@Cronisejはい、私の答えを見てください。 – eddiem