使用 Linux stat 命令創建靈活的文件列表 | Linux 中國

2021-02-15 Linux中國
導讀:stat 命令還可以用來創建文件列表。這些列表非常靈活,你可以選擇包含上述任何或全部信息。       https://linux.cn/article-12637-1.html
作者:Sandra Henry-stocker
譯者:geekpi

stat 命令提供了很多關於文件的詳細信息。

它不僅提供了文件最近變化的日期/時間,還顯示了最近訪問文件的時間和權限變化。它可以同時告訴你文件的字節大小和塊的數量。它可以顯示文件使用的 inode 以及文件類型。它包括了文件所有者和相關用戶組的名稱和 UID/GID。它以 「rwx」(被稱為 「人類可讀」 格式)和數字方式顯示文件權限。在某些系統中,它甚至可能包括文件創建的日期和時間(稱為「出生」)。

除了提供所有這些信息外,stat 命令還可以用來創建文件列表。這些列表非常靈活,你可以選擇包含上述任何或全部信息。

要生成一個自定義列表,你只需要使用 stat 命令的 -c(或 --format)選項,並指定你想要包含的欄位。例如,要創建一個以兩種格式顯示文件權限的列表,使用這個命令:

mytext.bak 664 -rw-rw-r--

如上例所示,%n 代表文件名,%a 代表八進位的權限,%A 代表 rwx 形式的權限。完整的列表如後面所示。

要為這個命令創建一個別名,輸入這個命令,或在 .bashrc 文件中添加這個定義。

$ alias ls_perms="stat -c '%n %a %A'"

要創建一個非常接近 ls -l 提供的長列表,可以這樣做:

$ stat -c '%A %h %U %G %s %y %n' my*-rw-rw-r-- 1 shs shs 255 2020-04-01 16:20:00.899374215 -0400 my.bannerdrwxrwxr-x 2 shs shs 4096 2020-09-07 12:50:20.224470760 -0400 mydir-rw-rw-r-- 1 shs shs 6 2020-05-16 11:12:00.460355387 -0400 myfilelrwxrwxrwx 1 shs shs 11 2020-05-28 18:49:21.666792608 -0400 myjunk-rw-rw-r-- 1 shs shs 655 2020-01-14 15:56:08.540540488 -0500 mykey-rw-rw-r-- 1 shs shs 8 2020-03-04 17:13:21.406874246 -0500 mylog-rwxr-xr-x 1 shs shs 201 2020-09-07 12:50:41.316745867 -0400 myscript-rw-rw-r-- 1 shs shs 40 2019-06-06 08:54:09.538663323 -0400 mytext-rw-rw-r-- 1 shs shs 24 2019-06-06 08:48:59.652712578 -0400 mytext.bak-rw-r 2 shs shs 228 2019-04-12 19:37:12.790284604 -0400 mytwin-rw-rw-r-- 1 shs shs 1983 2020-08-10 14:39:57.164842370 -0400 mywords

不同之處包括:1、不試圖將欄位排成可辨認的一列,2、日期是 yy-mm-dd 格式,3、時間欄位更精確,4、增加了時區(-0400 是 EDT)。

如果你想根據最後一次訪問的日期來列出文件(例如,用 cat 命令來顯示),使用這樣的命令:

$ stat -c '%n %x' my* | sort -k2mytwin 2019-04-22 11:25:20.656828964 -0400mykey 2020-08-20 16:10:34.479324431 -0400mylog 2020-08-20 16:10:34.527325066 -0400myfile 2020-08-20 16:10:57.815632794 -0400mytext.bak 2020-08-20 16:10:57.935634379 -0400mytext 2020-08-20 16:15:42.323391985 -0400mywords 2020-08-20 16:15:43.479407259 -0400myjunk 2020-09-07 10:04:26.543980300 -0400myscript 2020-09-07 12:50:41.312745815 -0400my.banner 2020-09-07 13:22:38.105826116 -0400mydir 2020-09-07 14:53:10.171867194 -0400

用 stat 列出文件細節時,可用的選項包括:

◈ %a - 八進位的訪問權限(注意 # 和 0 的 printf 標誌)◈ %N – 如果是符號連結,會解引用為指向的文件名◈ %t – 十六進位的主要設備類型,用於字符/塊設備特殊文件◈ %T – 十六進位的次要設備類型,用於字符/塊設備特殊文件◈ %w – 文件創建時間,以人類可讀形式;如果未知,則為 -。◈ %W – 文件創建時間,以 UNIX 紀元以來的秒數形式;如果未知,則為 0。◈ %X – 上次訪問時間,以 UNIX 紀元以來的秒數形式◈ %Y – 上次數據修改時間,以 UNIX 紀元以來的秒數形式◈ %Z – 上次狀態改變的時間,以 UNIX 紀元以來的秒數形式

這些欄位的選擇都列在手冊頁中,你可以選擇任何一個,不過用你喜歡的選項創建一些別名應該可以省去很多麻煩。有些選項,如 SELinux 安全上下文字符串,除非在系統中有使用,它將不可用。文件創建時間只有在你的系統保留該信息的情況下才可用。

via: https://www.networkworld.com/article/3573802/using-the-linux-stat-command-to-create-flexible-file-listings.html

作者:Sandra Henry-Stocker 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關焦點

  • 在 Linux 下 9 個有用的 touch 命令示例 | Linux 中國
    示例:1 使用 touch 創建一個空文件要在 Linux 系統上使用 touch 命令創建空文件,鍵入 touch,然後輸入文件名。,我們必須為某些測試創建大量空文件,這可以使用 touch 命令輕鬆實現:[root@linuxtechi ~]# touch sysadm-{1..20}.txt在上面的例子中,我們創建了 20 個名為 sysadm-1.txt 到 sysadm-20.txt 的空文件,你可以根據需要更改名稱和數字。
  • Linux教程之Linux mkdir 創建文件夾命令
    Linux教程之Linux mkdir 創建文件夾命令 Linux(Ubuntu/Fedora/CentOS/RetHat)可以通過GMONE和KDE界面直接創建文件夾和文件目錄。當然,有時候直接通過終端用 mkdir 命令來創建會更方便,特別是在Root權限的文件夾和目錄中......
  • 使用cat命令在Linux中組合文本文件
    然後可以將合併的文本保存到另一個文本文件中。 在本教程中,您將學習如何使用cat命令將兩個或多個文件中的文本合併為一個文件。 這將幫助您從普通初學者獲得Ubuntu上的高級用戶狀態。 我們在Ubuntu 18.04 LTS系統上運行了本教程中提到的命令。
  • linux命令大全
    雖然,大部分人最熟悉的還是WINDOWS用戶,但是總有各種各樣的原因讓我們選擇linux,不論因為何種原因開始接觸linux,但都希望大家儘快進入到Linux的世界裡,玩轉Linux高手,最終發現linux的可愛之處。本文將linux命令大致分為了10個部分:文件管理、磁碟管理、文檔編輯、文件傳輸、磁碟維護、網絡通訊、系統管理、系統設置、備份壓縮、設備管理。各位看官可將本文收藏,以備將來不時之需。
  • 在 Linux 中怎樣使用cp命令合併目錄樹
    為理解該問題讓我們思考下面的例子。假設 dir1 和 dir2 目錄中分別有3個子目錄a,b和c.目錄布局如下所示: 輸入目錄布局在目錄a,b和c中有一些文件,tree命令的輸出將能更好的說明:使用cp命令創建合併:現在我們將這兩個目錄合併成一個名為"merged"新的目錄中.完成上述操作最簡單的方式就是遞歸複製目錄,如下圖所示:
  • Linux文件的常用操作命令
    reload # 重載reboot # 重啟halt # 關機poweroff # 關機2、查看文件常用命令cat # 在命令提示符下查看文件內容more # 在命令提示符中分頁查看文件內容less # 命令行中查看文件可以上下翻頁反覆瀏覽head # 命令行中查看文件頭幾行tail # 命令行中查看文件尾幾行wc # 統計文件的單詞數 行數等信息3、目錄管理常用指令pwd #
  • Python學習第173課——Linux複製文件命令
    還記得我們上節課創建的文件夾linux嗎?它裡面我們又創建了linux_intro(Linux介紹)、red_hat(紅帽)、full_stack(全棧工程師)這結果文件夾,其實Linux系統介紹、紅帽體系、全站工程師這幾方面的知識點,都是可以通過Linux把它們相互連通在一起。
  • linux刪除命令rm的使用
    在linux中創建文件很容易,系統中隨時會有文件變得過時且毫無用處。用戶可以用rm命令將其刪除。該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對於連結文件,只是刪除了連結,原有文件均保持不變。
  • 如何在 Ubuntu Linux 中使用 RAR 文件 | Linux 中國
    編譯自 | https://itsfoss.com/use-rar-ubuntu-linux/  作者 | Ankush Das 譯者 | Hank Chow (HankChow) 🌟🌟共計翻譯:13.0 篇 貢獻時間:307 天RAR[1] 是一種非常好的歸檔文件格式。
  • Linux常用命令:Linux more命令使用方法
    more功能類似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能 。more命令從前向後讀取文件,因此在啟動時就加載整個文件。
  • Linux文件操作,這些命令可以搞定
    使用stat命令顯示這些時間戳:要將文件訪問時間更改為當前時間,請使用帶有-a選項的touch命令:touch -某個文件。同樣,-m選項將文件修改時間更改為當前時間。要將文件時間戳更改為當前時間以外的時間,請使用-t命令行選項。
  • 每天一個 Linux 命令(31): /etc/group文件詳解
    linux /etc/group文件是有關於系統管理員對用戶和用戶組管理的文件,linux用戶組的所有信息都存放在/etc/group文件中。具有某種共同特徵的用戶集合起來就是用戶組(Group)。用戶組(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件。
  • linux基礎命令(文件操作/文件權限)
    文件操作常用命令Linux是一個一切皆文件的作業系統,不管是普通的文件、目錄、套接字等,在Linux中都是以文件的方式對待,雖然他們的類型不同,但linux對其提供的是同一套操作界面。切換工作目錄cd 目標工作路徑註:目標工作路徑可為絕對路徑也可為相對路徑切換工作目錄eg.
  • Linux 文件和文件夾權限詳解
    Linux 文件和文件夾權限詳解一點PHP建站技術分享之linux權限探討,很多初學者只是在練習的時候使用過幾次命令,例如chmod又或者chown等,但是很少會在實際中會去關心這個問題,下面一點博主詳細給大夥分析linux
  • Linux下使用tar命令
    解壓語法:tar [主選項+輔選項] 文件或者目錄使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。主選項:c :創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。相當於打包。
  • linux命令:chmod
    chmod(change mode)是linux的一個可以改變文件或文件夾命運的命令,在版圖設計過程中我們可以通過這個命令來設置layout數據文件的權限,來防止組間用戶去隨意操作引起的不必要麻煩,還可以防止一些標準單元被誤改動。在認識chmod之前,我們先對linux中文件和文加夾的屬性信息做一個詳細的了解。
  • VMware創建的Linux虛擬機如何設置共享文件夾
    創建共享文件夾則很好的解決了同步windows系統和linux系統文件的問題,不用再進行拖拽,直接創建一個文件夾放置文件,兩個系統都可以進行操作,但是為了防止文件誤操作,提醒大家還是儘量複製到其他文件夾進行操作。
  • Linux命令之文件搜索
    前言在linux最小安裝模式下,當我們登錄到一臺不是自己安裝的linux伺服器上時,有的時候我們需要知道某個軟體的安裝位置,例如:我們需要知道mysql安裝在哪個目錄下,那麼我們應該怎麼辦呢?這就用到了文件的搜索功能。
  • 深度好文:Linux文件系統剖析
    在執行掛裝時,要提供文件系統類型、文件系統和一個掛裝點。為了說明 Linux 文件系統層的功能(以及掛裝的方法),我們在當前文件系統的一個文件中創建一個文件系統。實現的方法是,首先用 dd 命令創建一個指定大小的文件(使用 /dev/zero 作為源進行文件複製)—— 換句話說,一個用零進行初始化的文件,見清單 1。清單 1.
  • Linux常用命令 - sed
    Macos 使用的是 BSD 版本,而且大多數 Linux 發行版默認都預裝了 GNU。下面默認的是 GNU 版本。使用 sed 搜索和替換文本的一般形式如下:sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE-i 將其輸出寫入標準輸出seds 替代命令,可能是 sed 中使用最多的命令-/分隔符字符。