私はiPhoneの端末を使用してiOSで次のコードを実行しています。明確にするために、このコマンドはNew Term 2という単純な端末調整を使用して脱獄されたiPhoneで実行されます。
cd /var/mobile/Library/Widgets
find . -maxdepth 3 -name 'index.html' -printf "%h\n"
これにより、含まれているフォルダのリストが返されますindex.html
。他のファイルを追加する方法を知りたいです。 (Config_extra.js
存在する場合はindex.htmlと同じフォルダにあります)結果が表示されるように検索これら2つのファイルのみを含むフォルダ
事前にありがとう
ベストアンサー1
ほぼすべて来ました。 index.htmlファイルが見つかったら(iOSのBSDを含む一部の実装でサポートされている非POSIXオプション)、同じディレクトリでConfig_extra.jsファイルを見つけるように要求しますfind
。成功したら、ディレクトリ名を印刷します。-execdir
find
find
find . -maxdepth 3 -type f -name index.html -execdir test -f Config_extra.js \; -printf '%h\n'
上記のコマンドは拡張形式で書かれています。
find . -maxdepth 3 \
-type f -name index.html \
-execdir test -f Config_extra.js \; \
-printf '%h\n' ;
この問題を解決するもう1つの方法は、長い間標準でコアであったモジュールをperl
使用することです。意味は、あなたが持っているなら、あなたが持っているということです。File::Find
Perl
perl
File::Find
cfg='Config_extra.js'
perl -MFile::Find -le '
find(
sub {
my $cfg = $ARGV[0];
my $d = $File::Find::dir;
-d && "$d/" =~ m|(?:.*/){3}| && $File::Find::prune++;
-f && /^index\.html$/ && -f $cfg && print($d);
},
shift,
)
' . "$cfg"