プログラミングの世界に完全に入門した私が初めて投稿する文です。デフォルトでは、UNIXコースを受講していますが、ホームディレクトリにある一般ファイルのサイズを確認し、サイズが1KB以上のファイルを見つけて、圧縮ファイルにバックアップする必要があります。 。圧縮ファイルに拡張子.bakを使用してからクリーンアップする必要があります。これまで私はこれを持っています:
find . -maxdepth 1 -type f -size +1k -exec gzip -k -S.bak'{}'\;-exec cp'lab4.bak'/IFT383ss16/Labs/ \;
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
ここで助けやアドバイスを得ることができるかどうか知りたかったのですか?
答え1
私が見るには、あなたが空白文字に混乱しているようです。
{}
前、前、後、後に\;
スペースが必要です。一重引用符も必要ありません。cp
'lab4.bak'
{}
2番目-exec ...
は-exec cp {}.bak /IFT383ss16/Labs/ \;
この試み:
find . -maxdepth 1 -type f -size +1k \
-exec gzip -k -S.bak {} \; \
-exec cp {}.bak /IFT383ss16/Labs/ \;
これらはすべて1行に配置できます。私は\
読みやすくするために最初の2行の終わりにsを使用しました。 (シェルは、次の行の連続で空白ではなく最後の文字としてaを含む行を読み取ります)\
。\
しかし、.bakファイルをコピーしますか、それとも移動しますか?たぶんmv
代わりに使用することもできますcp
。