shell基本語法講解?幾個常用參數 -l 以長列表列出文件,我來為大家科普一下關于shell基本語法講解?下面希望有你要的答案,我們一起來看看吧!
幾個常用參數
-l 以長列表列出文件
-R選項, 遞歸選項,以目錄樹的形式列出所有文件
-S, 将會按照文件尺寸列出所有文件
-t, 将會按照修改時間來列出文件
-i選項會顯示文件的inode
參數 -n 所有行前邊插入行号
-b 用來加行号的, 不對空行進行編号
-v 用^标記法出不可打印字符
-T 顯示TAB ^I
-E 顯示行尾
-A -vET
-s 把多個空行壓縮成一個空行
tac 和cat 相反,從行尾打印
參數 -a 拷貝完整目錄樹, -u是更新選項, -r和-R選項是遞歸标志
參數 -f 強制删除文件, 即使文件是隻讀的
-r删除整個目錄樹
-p 創建遞歸目錄
參數 -s 創建符号鍊接, 或"軟"鍊接
find [路徑] [選項] [操作]
參數 -name 按文件名查找文件,例如:find /etc -name '*.conf'
-iname 按文件名查找文件,不區分大小寫
-user 查找文件所屬用戶的所有文件
-group 查找文件所屬組的所有文件
-type 按文件類型查找 f文件/d目錄/c字符設備文件/b塊設備文件/l鍊接文件p 管道文件
-size 根據文件大小查詢 -n小于大小為 n 的文件 n 大于大小為 n 的文件
-mtime -n n天以内修改的文件 n n天以外修改的文件 n 正好n天修改的文件
-mmin -n n分鐘以内修改過的文件 n n分鐘之前修改過的文件
-mindepth n 從第 n 級目錄開始搜索
-maxdepth n 表示至多搜索到第 n-1 級子目錄
-newer file1 查找當前目錄下比file1文件要新的文件
參數 -p 當每次執行一個分隔符的時候詢問一次用戶。
-n num num為個數,表示命令在執行的時候一行用的分隔符的個數,默認是用所有的。
-t 表示先打印,然後再執行。
-i 一行一行賦值給 {},默認是單行。
-r 當xargs的輸入為空的時候則停止xargs,不用再去執行了。
-L num 從标準輸入一次讀取 num 行送給 command 命令。
-l 同 -L。
-d delim delim分隔符,這裡修改的是xargs的分隔符。
當你嘗試用rm 删除太多的文件,你可能得到一個錯誤信息,用xargs 去避免這個問題
find ~ -name ‘*.log' -print0 | xargs -0 rm -f
xargs将find 命令的輸出傳遞給ls -l
find /etc -name "*.conf" | xargs ls –l
使用xargs 下載所有鍊接
cat url-list.txt | xargs wget –c
查找所有的jpg 文件,并且壓縮它
find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
拷貝所有的圖片文件到一個外部的硬盤驅動
ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
通過給定的操作連接參數, 并對參數求值. 可以使算術操作, 比較操作, 字符串操作或者是邏輯操作
expr 3 5 #返回8
expr 5 % 3 #返回2
expr 1 / 0 #返回錯誤消息, expr: division by zero 不允許非法的算術操作.
expr 5 \* 3 #返回15 在算術表達式expr中使用乘法操作時, 乘法符号必須被轉義.
y=`expr $y 1` # 增加變量的值, 與let y=y 1和y=$(($y 1))的效果相同. 這是使用算術表達式的一個例子.
z=`expr substr $string $position $length` #在位置$position上提取$length長度的子串.
b=`expr match "$a" '[0-9]*'` # 統計數字的個數.
b=`expr match "$a" '\([0-9]*\)'` # 注意, 括号需要轉義括号,b是匹配a的子串
:操作可以替換match命令. 比如, b=`expr $a : [0-9]*`與 b=`expr match $a [0-9]*`完全等價
時間/日期 命令date %Y //year,輸出4位數年
date %y //輸出2位數的年
date %m //m表示month,輸出的結果是月份
date %d //d表示day,日
date %D //D表示特殊格式的日期表示方法 如當前日期為2018年3月21日 顯示21/03/18
date %Y%m%d //輸出年月日
date %F //輸出的年月日會用連字符隔開
date %H //H表示hour小時
date %M //M表示minute分鐘
date %S //S表示second秒
date %s //輸出結果是一個時間戳,表示距離1970年1月1日0時0分過去多少秒
date %T //以下面格式輸出時分秒
date %H:%M:%S //效果跟上條命令一樣
date %w //輸出結果為星期幾,比如下圖表示當前系統時間是星期三
date %W //表示當前為今年的第幾周,比如我這裡為今年的第12周
date %s //獲取時間戳
date -d @1521563928 //将時間戳換算成日期
date %s -d "2017-03-21 00:38:48" //将日期換算成時間戳
從當前時間往前或往後推算
date -d "-1day" //當前系統時間為3月21日,輸出結果為3月20日
date -d "-1 month" %F //上個月
date -d "-1 year" %F //表示去年
時區dump: 查看特定時區的當前時間
輸出統計出來的命令執行的時間.
time ls -l /
at 2:30 am Friday < at-jobs.list
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!