ファイルの作成者または所有者を印刷するためにどのlsオプションを使用するのか教えていただけますか?私は2時間以上を探しましたが、私が見つけた唯一の事は動作しないハイフンハイフンの著者です。私はUnix.com、unixtutorial.com、Ubuntu.com、およそ12の他のサイトを試しました。私はGoogle、Yahoo、Bing、DuckDuckGoを使いました。私はそれをすべてチャックしてあきらめるつもりです。ファイルの作成者を印刷するためのUnixのlsコマンドオプション
1
A
答えて
1
著者、あなたが(それはそれなしでは動作しません)-l
で--author
を組み合わせを取得します。 ls --author
をサポートするほとんどのUNIXでは、作者と所有者は同じものですが、私はそれがGNU Hurdでのみ異なる概念であると信じています。さらに、実際にはすべてのUNIXがで、オプションをと指定しているわけではありません。
現在ののオーナーは、ls -l
の出力を見ることによって得ることができます。これは通常、行の3番目の引数です(ただし、これはいくつかによって変わります)。だから、単純化し、あなたが使用できます。もちろん
ls -al myFileName | awk '{print $3}'
を、ls
の出力を解析することはまれ良いアイデアです。あなたは、現在の所有者を取得するために、ファイルにstat()
を呼び出し、st_uid
フィールドを取得するために、Cプログラムを使用したほうが良いでしょう:
#include <sys/types.h>
#include <sys/stat.h>
#include <pwd.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
int Usage(char *errStr) {
fprintf(stderr, "*** ERROR: %s\n", errStr);
fprintf(stderr, "Usage: owner <file> [-n]\n");
fprintf(stderr, " '-n' forces numeric ID\n");
return 1;
}
int main(int argc, char *argv[]) {
if ((argc != 2) && (argc != 3))
return Usage("Incorrect argument count");
if ((argc == 3) && (strcmp(argv[2], "-n") != 0))
return Usage("Final parameter must be '-n' if used");
struct stat fileStat;
int retStat = stat(argv[1], &fileStat);
if (retStat != 0)
return Usage(strerror(errno));
struct passwd *pw = getpwuid (fileStat.st_uid);
if ((argc == 3) || (pw == NULL)) {
printf("%d\n", fileStat.st_uid);
return 0;
}
puts(pw->pw_name);
return 0;
}
、その後の所有者を取得するためにowner myFileName
でそれを呼び出し、owner
にそれをコンパイルします。与えられたファイル。所有者のテキスト名を検索しようとしますが、テキスト名が見つからない場合、または呼び出しの最後に-n
フラグを設定した場合は数値IDに戻ります。
関連する問題
- 1. 画像ファイルを印刷するためのプレビュー付きの印刷ダイアログの作成方法
- 2. リストの印刷方法<class*> ls?
- 3. execve()を使用してUNIXでlsプログラムを作成する
- 4. 印刷された文書の印刷プレビューを作成する方法
- 5. フォーマットされたファイルを作成してJavaで印刷する
- 6. 印刷する前にカスタム印刷ダイアログを作成する
- 7. テンプレートからQtで印刷するためのPDF文書を作成する
- 8. グラフを印刷するためのフラッシュコンポーネント
- 9. 式を印刷するためのライブラリ
- 10. バーコードを印刷するためのベストプラクティス
- 11. PDFファイルを印刷するためのSDK
- 12. UNIXのファイルの列を再帰的に印刷する方法は?
- 13. Unixでキャリッジリターンを印刷するときのデフォルトの動作は何ですか?
- 14. Pythonで作られたRTFファイルの改行を印刷する
- 15. 3次元印刷のための3dオブジェクトを作成するためのJavaライブラリ
- 16. プロシージャを印刷する子供初心者の評価者のためのデータ構造の設計
- 17. 構文解析せずにファイルの変更日を取得するためのUnixコマンド( 'stat'と 'ls'以外)
- 18. PDFファイルの印刷
- 19. Unixで現在のユーザとシステム名を印刷するには?
- 20. ループ印刷のための右揃え
- 21. GMod |送信者のチャットボックスに色付きメッセージを印刷する簡単なコマンドを作成したい
- 22. 複数のフロードキュメントを印刷するprintbatchを作成する
- 23. 印刷ユーザーセッションを作成しますか?
- 24. .txtファイルの一部を印刷する
- 25. C#のPRNファイルを印刷する
- 26. iTextで作成したPDFを印刷するためのJavaコードの書き方
- 27. どのようにしてlinuxの印刷ファイルを作成しますか
- 28. iTextで作成したPDFを印刷するには?
- 29. テキストファイルから作成した配列を印刷する
- 30. awkでの丸め印刷
'--author'は、どのBSDでも利用できません。私はそれがLinuxだけのものかどうかはわかりません。 – Rob
情報源について言えば、私のUbuntu 16.04の 'ls 'のマニュアルページは、' -l'を使うべきであることを明確に示しています: '--author with -l、各ファイルの作者を印刷します' –