2016-05-27 4 views
3

thisコマンドは、私は、そのディレクトリに、この操作を行うことができますどのように私のPC ssh -t xxx.xxx.xxx.xxx "cd /directory_wanted ; bash"最新のN個のファイルを除くすべてのファイルを削除するにはどうすればよいですか?

から特定のディレクトリに、サーバーにログインすることができます。私は基本的にN以外のすべてのファイルを削除できるようにしたい。 find ./tmp/ -maxdepth 1 -type f -iname *.tgz | sort -n | head -n -10 | xargs rm -f

+0

最初のコマンドで 'bash'を' find ... 'パイプラインで置き換えることができます。 – anishsane

答えて

2

ssh -t xxx.xxx.xxx.xxx "cd /directory_wanted; ls -t *.tgz | tail -n 
+11 | xargs rm -f; bash" 

は、我々はこれまでの操作は、リモートマシンで実行するものを追加することができます。しかし、すべてのコマンドはセミコロン(;)で終了する必要があります。

注:silentMonkと同じコマンドが含まれています。それは簡単で働いています。ただし、操作を実行する前に一度確認してください。

+0

tksは動作するようにしました。 – HattrickNZ

+0

@Krishna、お返事ありがとうございます – SilentMonk

+0

あなたはようこそ。@ HattrickNZ&SilentMonk – Krishna

3

このコマンドが動作するはずです:

ls -t *.tgz | tail -n +11 | xargs rm -f

警告:rm -fを行う前に、ファイルが期待されているようls -t *.tgz | tail -n +11でリストされていることを確認します。

仕組み:

lsリストディレクトリの内容。 -tフラグ種別 更新時刻(最新)。より detialsのために tailのmanページを参照してくださいライン11から始まるls

tail -n +11出力のmanページを参照してください。

システムがMac OS Xの場合、作成時間に基づいて削除することができます。 と-Utフラグを使用してください。これにより、作成時間に基づいて内容がソートされます。サイド引用符でこのコマンドを使用することができます

関連する問題