最新記事

findコマンドのファイルを各ファイルが二重引用符内にある1行にグループ化する方法は? [コピー]
shell
find
freebsd
xargs

findコマンドのファイルを各ファイルが二重引用符内にある1行にグループ化する方法は? [コピー]

この質問にはすでに答えがあります。: 「find」コマンドの出力に「cat」コマンドを使用するには? (回答4個) 別のサブディレクトリにあるファイルをリンクする方法は? (回答3個) 閉鎖3年前。 これは、findを使用して見つかったファイルを繰り返すか操作するときによく遭遇する問題です。 次のファイルがあります。 $ find . -name "*ES 03-11*" ./01jan/ES 03-11.txt ./02feb/ES 03-11.txt ./03mar/ES 03-11.txt ./04apr/ES 03-11.txt ./05may/ES 03-11.txt 次のコマンドを実行したいと思います。 $ cat "./01jan/ES 03-11.txt" "./02feb/ES 03-11.txt" "./03mar/ES 03-11.txt" "./04apr/ES 03-11.txt" "./05may/ES 03-11.txt" | process これは find によって提供される各行を連結することを意味しますが、二重引用符または単引用符で囲まれています。 私はこれを試しました: find . -name "*ES 03-11*" | awk '{printf "\"%s\" ", $0}' | xargs cat | process これはうまくいくようですが、awkを使用しない、または覚えやすい操作や入力をせずに実行できる他の方法があるかどうか疑問に思います。 私はFreeBSDとBourne Shellを使用しています。

Admin

find -exec:{}と+の間にパラメータを追加する
find
arguments

find -exec:{}と+の間にパラメータを追加する

findを使用してファイルを見つけてディレクトリにコピーしたいので、次のようにします。 find . -name '*.png' -exec cp {} /tmp/dest + しかしこれは失敗する find: missing argument to `-exec' +それをaに置き換えると機能します;が、cpは各ファイルに対して個別に呼び出されます。フォームを使用する+ときに末尾のパラメータ(ターゲットディレクトリなど)をどのように追加しますか-exec? もちろん、この場合は、cp -t次のようにして明らかな制限を解決できます。スタックオーバーフローに関するこの記事しかし、その解決策はcp.の代わりにrsync、scp、または他のツールを使用します。{}と+の間にパラメータを追加する一般的な方法はありますかfind -exec?

Admin

変数にファイル名パターンを持つxargs rmを探す
bash
find
rm

変数にファイル名パターンを持つxargs rmを探す

次のコマンド: find /directory -type f -name "*.txt" -print | xargs rm ディレクトリとサブディレクトリのすべてのファイルを削除するだけ.txtです。ただし、findたとえば、ファイル拡張子の変数または配列を作成してから、 TXT=(*.txt) for ii in ${TXT[@]}; do find /directory -type f -name $TXT -print | xargs rm done このコマンドはサブディレクトリのファイルを削除しません.txt。なぜ?サブディレクトリのファイルを削除するために2番目のコード部分をどのように変更しますか? PS:ファイル拡張子が複数あり、配列を使用しました。

Admin

コマンドからディレクトリを除外または非表示にする方法(コマンドの検索など)?
bash
find
path
search
firejail

コマンドからディレクトリを除外または非表示にする方法(コマンドの検索など)?

通常、コマンドやアプリケーションからフォルダやパスを除外する方法は? findコマンドからパスを除外しようとしましたが、利用可能な可能性はpruneオプションで説明されています。ここそしてここ高度な検索を有効にするには、コマンドを少し複雑にします。

Admin

すべてのマウントをスキップしながら、$ HOMEのすべてのディレクトリに対する権限をすばやく変更します。
permissions
filesystems
find
mount

すべてのマウントをスキップしながら、$ HOMEのすべてのディレクトリに対する権限をすばやく変更します。

ユーザーのホームディレクトリに1つ以上のNFSマウントポイントが含まれている場合、そのマウントをスキップしてディレクトリ権限を効果的に変更する方法は? chmod o-rwxユーザーのホームディレクトリの下にある削除されたすべてのディレクトリで実行したいと思います。 システム内のすべてのユーザーに対してこれを行うので、rootとしてコマンドを実行します。 (NFS マウントにはroot_squashマウントオプションがあります.) 私が試したことは次のとおりです。しかし、期待どおりに動作しません。 sudo find /home/myuser/ -mount -path ./Documents -prune -o -type d -exec chmod o-rwx {} \; chmod: changing permissions of '/home/myuser/Documents': Operation not permitted エラーメッセージを避けたい。さらに、findコマンドの実行に時間がかかります。私はこれがマウントポイント(多くのディレクトリとファイルが含まれている)に降りることを意味すると信じています。 私のコマンドのもう1つの問題は、スキップした場所を明示的にコーディングする必要があることです。すべてのユーザーにはドキュメントがインストールされていますが、一部のユーザーには別の名前で他のNFSもインストールされています。 私の目標は、chmod o-rwxユーザーアカウントの単純なディレクトリ権限の問題を自動的に修正することです(たとえば、私の状況でこれを行うにはどうすればよいですか?

Admin

3日以上の空でないフォルダの検索と削除
linux
find
rm

3日以上の空でないフォルダの検索と削除

3日以上の空でないディレクトリを見つけて削除したいと思います。 find . -mtime +3 -exec rm -rf "{}" \; ファイルのあるディレクトリを削除したいと思います。ディレクトリとファイルの両方が3日以上経過しました。 /tmp drwxr-x--- 2 root root 4096 Nov 6 05:05 20191106 drwxr-x--- 2 root root 4096 Nov 7 05:05 20191107 drwxr-x--- 2 root root 4096 Nov 8 05:05 20191108 drwxr-x--- 2 root root 4096 Nov 9 05:05 20191109 drwxr-x--- 2 root root 4096 Nov 10 05:05 20191110 drwxr-x--- 2 root root 4096 Nov 11 05:05 20191111 drwxr-x--- 2 root root 4096 Nov 12 05:05 20191112 drwxr-x--- 2 root root 4096 Nov 13 05:05 20191113 drwxr-x--- 2 root root 4096 Nov 14 05:05 20191114 drwxr-x--- 2 root root 4096 Nov 15 05:05 20191115 drwxr-x--- 2 root root 4096 Nov 16 05:05 20191116 drwxr-x--- 2 root root 4096 Nov 17 05:05 20191117 drwxr-x--- 2 root root 4096 Nov 18 05:05 20191118 drwxr-x--- 2 root root 4096 Nov 19 05:05 20191119 だからここにいる時間は3日以上です。各ディレクトリにはいくつかのテキストファイルがあります。

Admin

bashを使用してフォルダから重複していないランダムファイルを選択するには?
bash
find
shuf

bashを使用してフォルダから重複していないランダムファイルを選択するには?

このコマンドを使用して任意のファイルを選択できます find ./ -type f | shuf -n 1 ただし、時には同じファイルが表示されることもあります。 重複したファイルの選択を中止できますか? これには他のユーティリティがありますか? 再帰サブフォルダがある可能性があるフォルダに約50,000個のtxtファイルがあり、それを見るために任意のファイルを選択したいが、もう一度見たくない。 +毎日新しいファイルがフォルダに追加されます...

Admin

less/vimで最近修正されたn個のファイルを開く方法は?
files
find
ls
filenames

less/vimで最近修正されたn個のファイルを開く方法は?

lessディレクトリ内で最近変更された5つのファイルのみを開くか開く方法は何ですかvim? 私はこれを使用して、ls -t最新のものから古いものまで出力をソートできることを知っています。だから私の本能はを使用することですが、vimは出力をファイル名ではなく生のテキストとして扱うのでls -t | head -5 | vim動作しません。ls どうすればいいですかfind?私の問題findは、私はいつもlsディレクトリを検索することに慣れているので、使い方を知っていることです。しかし、findこの目的に使用したことはありません。

Admin

「find」と「nano」コマンドを組み合わせる方法
bash
find
nano

「find」と「nano」コマンドを組み合わせる方法

「find」コマンドと「nano」コマンドを組み合わせる方法は? 例えば、 find . -name "helloworld.py" | nano 「nano」(関数を使用せずに1行リンクコマンドを使用して)を使用してファイルを見つけたら、このファイル(おそらく複数の最初のファイル)をどのように開くことができますか?

Admin

find -exec コマンドの使用 {} + コマンドの呼び出し回数
find
gnu

find -exec コマンドの使用 {} + コマンドの呼び出し回数

マンページの状態を探す: -exec command {} + This variant of the -exec action runs the specified command on the selected files, but the command line is built by appending each selected file name at the end; the total number of invocations of the command will be much less than the number of matched files. findいつもこれが一度だけ実行されると思いましたcommand。コマンドが何回呼び出されたかを知る方法はありますか? 私の考えでは、これが一度だけ発生した場合は、処理commandするには大きすぎるパラメータのリストを作成する危険があるため、これは重要です。ただし、 find が呼び出しを分割すると (たとえばparallel)、この状況は次のようになります。緩和される。

Admin

ファイルを見つけて現在の作業ディレクトリにする方法(cd)
find
cd-command

ファイルを見つけて現在の作業ディレクトリにする方法(cd)

cdMacでファイルを検索して現在のディレクトリ()に設定し、追加のコマンドを実行する実行可能スクリプトを作成しようとしています。私は始めた find . -type d -name "MCsniperPY-master" -exec cd {} + または a が必要だそうです。 1つを追加しましたが、+cmdは何もしませんでした。 1つ追加しましたが、;1つが必要だと思い+ます。; 私はUnixコーディングに初めて触れました。したがって、これを行うより良い方法がある場合はお知らせください。

Admin