2017-12-29 53 views
-1

サイズをMB単位で指定できますが、ファイルを開こうとしているときにファイルを見つけることができません。ファイルサイズは確認できますが、ファイルを開くことはできません

while read line; do echo $line # or whaterver you want to do with the $line variable 
    cat $line | grep "PROCEDURE" > result3.txt 
    chmod 777 result3.txt 
done < xreflist.txt; 
+1

PROCEDURE "xreflist.txt> result3.txt"は結果を得るのに十分であり、ループは必要ありません。ループの外側で 'chmod'を実行すると、一度だけ行う方が良いでしょう。 – ULick

+0

xreflist.txtファイルには、これらのファイルでUPDATEを持つ行を読み込んで出力する必要があるファイルの名前が含まれています。 – Arvind

+0

申し訳ありませんが、私の悪い。コードについて十分に考えなかった。どのファイルが見つからないのか不明なので、前に 'ls -l xreflist'、ループの中に' ls -l $ line'、ループの後に 'ls -l resutl3.txt'を実行することができます。あるいは、適切なエラー処理 'if [! -r $ line];次に "$ line not readable"をエコーし​​ます。持続する; fi' – ULick

答えて

1

ファイルサイズを確認するには、そのディレクトリを読み取る権限が必要です。

ファイルを開くには、ファイルを読み取る権限が必要です。

他のものを使用せずに行うことは完全に可能です。

$ mkdir junk 
$ cd junk 
$ echo "Hello World" > no-permission 
$ chmod 0 no-permission 
$ ls -la 
total 8 
drwxr-xr-x 3 jonathanleffler staff 96 Dec 29 11:34 . 
drwxr-xr-x 18 jonathanleffler staff 576 Dec 29 11:34 .. 
---------- 1 jonathanleffler staff 12 Dec 29 11:34 no-permission 
$ cat ./no-permission 
cat: ./no-permission: Permission denied 
$ rm -f ./no-permission 
$ cd .. 
$ rmdir junk 
$ 
+0

777ディレクトリとファイルレベルの両方でアクセス権がありますが、同じ問題です。 -rwxrwxrwx 1 dslayad ds2 1402 12月29日11:27 result3.txt – Arvind

+1

あなたの質問を編集して、何が起こっているのかをより明確に示す必要があります。 MCVE([MCVE])の作成方法をお読みください。最小限(2行または3行)の 'xreflist.txt'を表示し、ファイルとディレクトリに対するアクセス許可を表示する必要があります。これは基本的に私の答えと同じです。 'chmod 777'は悪いニュースです。ファイルには実行可能コードが含まれていない可能性があります。実行可能にしないでください。マシン上のすべてのユーザーがファイルに書き込むことを許可しているので、コンテンツは気にしません。 777パーミッションを使用しないでください。それは愚かです - あなたが目に見える内容を望んでいない限り、おそらく644を使うことは賢明でしょう。 –

関連する問題