Portál AbcLinuxu, 4. listopadu 2025 21:53
mkcd() { mkdir -p "$1" && cd "$1"; }. Jinak mám raději samostatné soubory, které můžu kopírovat, poslat, zálohovat...
Proto pouzivam zsh, pro dane priklady to vypadalo:
svn revert **/ZakopanaTrida.java
rm **/*.pyc
(pro zsh musi byt zapnuta option extendedglob, neco jako "setopt extendedglob" v ~/.zshrc). Plus zsh ma uzasny autocomplete (doplnuje treba i remote adresare/fajly ze svn nebo ssh, kdyz pisu "scp asdf.txt stroj_nekde:dir1/dir2")
Pro skripty porad pouzivam bash (kvuli prenositelnosti). Ale jako interaktivni shell je zsh hodne pohodlne, globbing zsh je brutalne silnej (vsechny moznosti nezna snad ani autor sam
), napr:
ls -l (#i)**/*nejaka*~*jina*(.)
vylistuje vsechny soubory libovolne hluboko '**', case insensitive '(#i)', ktere zaroven nematchujou '*jina*' a jsou obycejnym souborem '(.)'. Vetsinou takhle "silene" globy nepotrebuju, nekdy se to presto hodi. IMHO zsh-completion se mi zda taky lepsi nez bash-completion.
Nekdy se taky hodi zmv - hromadny prejmenovani souboru, podporuje stejny globbing a capture groups (jako zavorky u regexpu).
BTW sample zshrc kdyby to chtel nekdo zkusit.
Používám něco obdobného, ale navíc i pro prohledávání souborů podle obsahu. (Plus přidávám pár dalších drobností.)
# Hledani souboru podle jmena.
# (Pouziti: find-name /nejaky/adresar/ 'soubor*.txt')
find-name () {
local dir=$1
local name=$2
shift 2
find "$dir" -name "$name" $*
}
# Hledani souboru podle obsahu.
# (Pouziti: find-content /nejaky/adresar/ 'hledany retezec')
find-content () {
local dir=$1
local content=$2
shift 2
find "$dir" -type f -exec grep -il -- "$content" {} \; $*
}
# Porovnavani rozdilu mezi soubory/adresari bez vypisu podrobnosti.
# (Pouziti: ddiff /nejaky/adresar/ /nejaky/jiny/adresar/)
alias ddiff='diff --brief'
# Vypis absolutni cesty k souboru/adresari, volitelne i s kvalifikovanym
# domenovym jmenem ve tvaru prijimanem programem scp.
# (Pouziti: pt /nejaky/soubor/nebo/adresar
# fpt /nejaky/soubor/nebo/adresar)
pt () {
echo `readlink -f "$*"`
}
fpt () {
echo `hostname -f`:`pt "$*"`
}
# Vytvoreni adresare s okamzitym vstoupenim do nej.
# (Pouziti: mkdir-cd novy-adresar)
mkdir-cd () {
mkdir $* && shift $[$#-1] && cd $1
}
Skript je pěkný, na příkazové řádce se může hodit, ale…
Typicky vím, jak se nějaká třída jmenuje, ale nevím jak hluboko je pohřbená v balících
…nechceš zkusít nějaké IDE?
Např. v Netbeans zmáčknu Ctrl+O a začnu psát název třídy – hledá se nejen v aktuálním projektu, ale i v knihovnách a v JRE. Pak jen stačí zmáčknout enter a jsi přímo v té třídě. Podpora (nejen) SVN tam taky je.
(Btw ten web je zoufale hnusný, teď ho vidím poprvé a asi naposled. To první, co uživatel uvidí, je reklama přes celou obrazovku? Na pornowebech možná, ale tady?)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.