Find File Move

あるあるワンライナ。 findで探索したファイルのリストをmvに渡して一括で移動させる。 find -name '*.extention' | xargs -I{} mv {} dest_dir/

May 12, 2024 · 1 min

Make Simle Trans Shell Script

trans shell に文字列をくっつけて喰わせるだけのシェルスクリプト #!/bin/bash set -u umask 0022 # PATH='/usr/bin:/bin' parm=`echo "${@:1:($#)}"` trans en:ja "${parm}" 以下のように使う %~/bin/ts make it simple それを簡単に (Sore o kantan ni) Translations of make it simple [ English -> 日本語 ] make it simple それを簡単に, かんたんいいえば, シンプルにする, 簡単にする

August 10, 2022 · 1 min

Shell Find File and Rename

find . -name '*-GHBAG-*' -exec bash -c 'echo mv $0 ${0/GHBAG/stream-agg}' {} \; Appendix. linux - find a pattern in files and rename them - Stack Overflow

July 22, 2021 · 1 min

Shell File Name

シェルスクリプトに拡張子は必要かについて、不要とする理由は、実行権限をつける以上コマンドとしてみなすためである。 これに習ったときに不都合はほとんどない。それがテキスト形式なのか、バイナリ形式なの分りづらいかもしれないが、内容を確認するか、でなくてとも file コマンドが判別すれば良い。 これにもとづいてシェルスクリプトにアンダーバーを含めるかということになると、一般的にはつけないほうが多いと考えれるので、付けない。 ただし、標準的なコマンドと違って、普段の作業で作成するシェルスクリプトの場合、特定の処理を実姉することがおおいので、ファイル名が具体的な処理に紐付きやすくなり、複数の単語の組み合わせ、たとえば動詞と名詞を並べたもの(write memo など)になりがち。そのときはファイル名の形式として、キャメルケース(camelCase)か、スネークケース(snake_case)か、ケバブケース(cavab-case)にするか迷う。 大文字小文字を区別しないOSがあることに鑑みて、キャメルケースは避け、スネークケースは変数名で利用することがおおいので、最後にのこった、バブ形式が良いのではと思う。

July 22, 2021 · 1 min

Sh Test Command

ファイル関連 -e {file1} {file1} exists -f {file1} {file1}is normal -d {file1} {file1}is directory -s {file1} {file1}size is not empty -L {file1} {file1}is symbolic link -h {file1} {file1}is symbolic link {file1} -ef {file2} {file1} is {file2}‘S hard link ファイル属性 -r {file1} {file1} exists and readable -w {file1} {file1} exists and writable -x {file1} {file1} exists and executable -O {file1} {file1} file exists and is Owner is euid1 -G {file1} {file1} exists and belongs group -u {file1} {file1} exists and is setuid -g {file1} {file1} exists and is setgid -k file exists and is sticky {file1} -nt {file2} {file1} is newer than {file2} {file1} -ot {file2} {file1} is older than {file2} 標準入出力 -t 0 std input is terminal -t 1 std output is terminal -t 2 std error is terminal -t N N’s file descriptor is terminal 文字列判定 {str1} = {str2} {str1} equal {str2} {str1} != {str2} {str1} not equal {str2} -z {str1} {str1} size is 0 -n {str1} {str1} size is not 0 整数判定 {num1} -eq {num2} {num1} equal {num2} {num1} -ne {num2} {num1} not equal {num2} {num1} -gt {num2} {num1} greater then {num2} {num1} -ge {num2} {num1} greater or equal {num2} {num1} -lt {num2} {num1} less than {num2} {num1} -le {num2} {num1} less or equal {num2} その他 -o {option} {option} is defined -v {variable} {variable} is defined ! {condition} {condition} is FALSE {condition1} -a {condition2} {condition1} and {condition2} IS TRUE {condition1} -o {condition2} {condition1} or {condition2} IS TRUE ({condition1}) prefer {condition1} TRUE usually TRUE FALSE usually FALSE 実効ユーザーID(euid)とはプログラムが動作するときの権限。プログラムを起動したユーザーのID(実ユーザーID、ruid)と等しいことが多い。 ↩︎ ...

July 10, 2021 · 2 min

Shlvl

シェルの深さ知るには echo $SHLVL

July 10, 2021 · 1 min

Command Line Comment

: 'コマンドライン上でコメントを書きたい場合' ls ~/bin/ ;:'コマンドライン上でコメントを書きたい場合' :はコマンドライン上のtrueと同じなので、ほぼなにもしないコメントと同じ扱いになる。ただし、実際にはtrueでコマンドは実行されているので、直前のコマンド成否を調べる$?の判断は使えない。 Appendix. https://teratail.com/questions/149419

June 3, 2021 · 1 min

Shell if File Exists

if [ -e /usr/bin/auto-xflux ];then /usr/bin/auto-xflux fi

June 3, 2021 · 1 min

Change Shell

chsh -l /bin/sh /bin/bash /usr/bin/git-shell /bin/zsh /usr/bin/zsh echo $SHELL chsh -s /bin/zsh echo $SHELL /bin/sh Changing shell for $USER. Password: xxxxx Shell changed. /bin/zsh

June 3, 2021 · 1 min

History Pacman Install

history -1000000 | grep -v 'history' | sed 's/^ \+[0-9]\+//g' \ | grep '\(pacman\|pakku\) \+-S ' | awk -F '-S' '{print $2}' \ | sed 's/^ \+//g' | sort | uniq alsa-utils auto-xflux dmenu fcitx5-im fcitx5-skk hugo neovim openssh qutebrowser tmux ttf-hackgen ttf-ibm-plex xkbset

May 22, 2021 · 1 min

Shebang

シェバン(Shebang)

May 22, 2021 · 1 min

Check File

shellでfileの存在を確認するにはtestcommandを-eoptionを実行します。このコマンドはshell のビルトインコマンドになっていて、同じ処理をする[と]commandのほうが、直感敵な記述ができます。 if [ -e $file ]; then eho "exists file" fi if [ ! -e $file ]; then eho "not exists file" fi

May 22, 2021 · 1 min