リモートLinuxシステムで実行されているディレクトリから最新の2つのファイルを除くすべてのファイルを削除するには、次のようにします。
cd /data
ls -1tr | head -n -2 | xargs -d '\n' rm -f --
リモートLinuxシステムにログインした後、これらのコマンドを手動で実行しますが、ログインとこれらのコマンドの実行を1つのコマンドにまとめたいと思います。
ログイン場所を使用して同様の操作を実行し、scp
ファイルをローカルコンピュータのdirにscpしました/local/data
。
scp -i LightsailDefaultKey-eu-west-2.pem -r [email protected]:/data/ /local/data
上記のログインとコマンドと同様の操作を実行する方法はありますか?
cd /data
ls -1tr | head -n -2 | xargs -d '\n' rm -f --
ローカルコンピュータのリモートコンピュータで単一のコマンドを実行しますか?
ベストアンサー1
他のポスターに同意します。この種の構文解析を使用してはいけませんが、現在実行されている操作には機能するため、コマンドで-dスイッチを使用してフルディレクトリパスを取得することはls
できませんか?ls
さらに作業を行わない限り、作業ディレクトリを変更する理由はありません。このワイルドカードを追加する必要があります。
ssh user@host "ls -d1tr /data/* | head -n -2 | xargs -d '\n' rm -f --"