2016-06-10 2 views
1

Ich verwende derzeit die Linux-Befehlszeile und fragte mich nur, ob es einen schnellen Befehl gibt, den Sie in die Konsole eingeben können, um ein beliebiges Verzeichnis zu öffnen.Linux-Befehlszeile jedes Verzeichnis öffnen

Ich gebe Ihnen ein Beispiel, was ich meine.

sagen in einem Verzeichnis ligands/

haben wir:

ligand_1993324 
    ligand_1993444 
    ligand 1993255 
    shoe_lace 
    water_bottle 

Lässt es nur sagen, sind 100.000 dieser sehr ähnliche Verzeichnisse. Weil ich faul bin, möchte ich nur eine beliebige davon auswählen, aber es muss zum Beispiel mit ligand_199 beginnen.

Bitte nicht ich bin durch das Handbuch geschleppt und kann nichts finden, ich habe mir auch andere Stapel angesehen, jede Hilfe wäre toll!

+1

was bedeutet „eine Datei öffnen“ für dich bedeuten? Öffnen Sie eine Textdatei mit einem Editor? – Yves

+0

Ich gebe Ihnen, was ich weiß: Wenn Sie Dateien von der Konsole öffnen möchten, können Sie einige Linux-Befehle verwenden, um eine Shell mit den entsprechenden Befehlen zu erstellen. Wenn Sie Dateien mit einem Editor öffnen möchten, so dass Sie sie vom Desktop aus lesen können (genau wie ein Doppelklick darauf), weiß ich, dass es im Mac OS System sehr einfach ist, da wir applescript haben, aber für Linux weiß ich nicht . Vielleicht google: Gibt es AppleScript für ? – Yves

+0

Sie sehen, ich benutze Mac und ich höre normalerweise etwas Musik. Was ich mache, ist folgendes: Ich erstelle einen Ordner, lege alle Musikstücke hinein und erstelle ein AppleScript, etwa so: 'open/myapp/musicplayer/mymusic/*'. Mit diesem Skript führe ich einfach das Skript aus, wenn ich Musik hören möchte. Vielleicht ist das das, was Sie brauchen, aber ich kenne keinen vergleichbaren Weg für Linux. – Yves

Antwort

1

Es gibt ein paar Versionen eines Programms namens verschiedentlich "randomline" oder "randline" über. Diese Version zeigt ihr Alter (es ist in Perl).

#!/usr/bin/perl 

while(<>) 
    { 
    push @lines, $_; 
    } 

$randline = $#lines; 
$randline = rand($randline); 
print $lines[$randline]; 

diese Gegeben in einer Datei ~/bin/randomline, dann reduziert Ihre Aufgabe auf die folgende Annahme, dass Sie die Datei mit vim öffnen möchten:

vim $(ls ligands/ligand_199* | ~/bin/randomline) 
+0

Es gibt eine andere Version von "randline" in C von scs @ eskimo: https://www.eskimo.com/~scs/src/#randline – vielmetti

+0

Und in der Tat gibt es eine ganze Reihe von Random-Line-Programmen hier erwähnt http://stackoverflow.com/questions/448005/whats-an-easy-way-to-read-random-line-from-a-file-in-unix-command-line?lq=1 einschließlich 'shuf' von GNU-Coreutils, die sich möglicherweise bereits auf Ihrem System befinden; wenn es dann ist, ist "randomline" nur 'shuf -n 1'. – vielmetti

1

Vielleicht so etwas wie

number=$(((RANDOM%10000)+1)) && emacs -nw "ligand_199$number" ? 
+0

Danke für die Antwort, aber das ist viel komplizierter als den Namen der Datei/Verzeichnis tatsächlich schreiben –

+0

Nicht, wenn Sie es in einen Bash Alias ​​oder Skript setzen Datei. – CherryDT

+0

Danke Erik Alapaa –

1

können Sie Folgendes verwenden:

files=(/my/dir/*) 
file=`printf "%s\n" "${files[RANDOM % ${#files[@]}]}"` 
cat file 
Verwandte Themen