Zeigen Sie den vollständigen Pfad (absoluten Pfad) einer Datei in einem Verzeichnis in Linux Bash an

Einführung

Dies ist mein erster Beitrag, daher ist es möglicherweise nicht möglich, ihn zu erreichen, aber ich danke Ihnen. Bitte zögern Sie nicht zu kommentieren, wenn es irgendwelche merkwürdigen Punkte oder Verbesserungen gibt.

Überblick

In diesem Artikel wird ein Befehl (Skript) vorgestellt, der den vollständigen Pfad (absoluten Pfad) einer Datei in einem Verzeichnis unter Verwendung von Bash in einer allgemeinen Linux-Umgebung anzeigt (unter der Annahme eines Debian-Systems hier).

Motivation

Ich habe es gemacht, weil ich beim Herunterladen der Datei in die Google Compute Engine (GCE) -Konsole den vollständigen Pfad der Datei benötigte.

Spezifikation

Befehlsname

In lf werden dieselben Dateien wie die von "ls" angezeigten in derselben Reihenfolge mit dem vollständigen Pfad angezeigt. lfa zeigt dieselben Dateien wie die von "ls -a" angezeigten in derselben Reihenfolge mit dem vollständigen Pfad an. Das heißt, die Punktdatei wird ebenfalls angezeigt. lft zeigt dieselben Dateien wie die von "ls -t" angezeigten in derselben Reihenfolge mit dem vollständigen Pfad an. Das heißt, die Aktualisierungszeiten werden in chronologischer Reihenfolge angezeigt.

Eingabespezifikationen

Ermöglicht die Angabe mehrerer Dateinamen (Dateipfade) und Verzeichnisnamen (Verzeichnispfade) in Befehlsargumenten als Eingabe. Es spielt keine Rolle, ob es sich um einen relativen oder einen absoluten Pfad handelt. Wenn das Verzeichnis nicht enthalten ist, wird angenommen, dass es sich im aktuellen Verzeichnis befindet. Es wird nicht nach der PATH-Variablen usw. gesucht. Der Glob wird nicht von der Befehlsseite gesteuert.

Ausgabespezifikationen

Es wird in der Reihenfolge des eingegebenen Dateinamens und des Verzeichnisnamens verarbeitet. Wenn es sich um ein Verzeichnis handelt, wird der vollständige Pfad aller Dateien in diesem Verzeichnis zur Standardausgabe ausgegeben. Wenn es sich nicht um ein Verzeichnis handelt, drucken Sie den vollständigen Pfad der Datei zur Standardausgabe.

Fehlerbehandlung

Wenn der im Argument angegebene Pfad nicht vorhanden ist, wird ein Fehler ausgegeben.

Implementierung

Die Implementierung wurde am Ende von ~ / .bashrc geschrieben. Wenn Sie den Readlink nicht verwenden können, verwenden Sie die folgende Zeile in den Kommentaren. Ich denke nicht, dass "--color = auto" notwendig ist, also können Sie es löschen.

~/.bashrc



function _lsfp () 
{ 
    local dir file;
    if [[ -d $1 ]]; then
        dir=$(cd "$1";pwd);
        ls --color=auto -1 $2 "$1" | while read file; do
            echo "$dir/$file";
        done;
    elif [[ -e $1 ]]; then
         readlink -f "$1"
#         echo "$(cd $(dirname "$1");pwd)/${1##*/}";
    else
        echo "'$1' is not found." >&2;
    fi
}

function lsfp () 
{ 
    local arg;
    [[ $# -eq 0 ]] && _lsfp "$(pwd)" || for arg in "$@";
    do
        _lsfp "$arg";
    done
}

function lsfpa () 
{ 
    local arg;
    [[ $# -eq 0 ]] && _lsfp "$(pwd)" -a || for arg in "$@";
    do
        _lsfp "$arg" -a;
    done
}

function lsfpt () 
{ 
    local arg;
    [[ $# -eq 0 ]] && _lsfp "$(pwd)" -t || for arg in "$@";
    do
        _lsfp "$arg" -t;
    done
}

alias lf='lsfp'
alias lfa='lsfpa'
alias lft='lsfpt'

Prüfung

$ cd ~/
$ source ./.bashrc
$ lf
$ lfa
$ lft
$ lf ~/

Nachwort

Bash ist sehr praktisch. Ich werde es von nun an auf verschiedene Arten verwenden. Vielen Dank für das Lesen bis zum Ende.

Nachtrag

Ich habe auch lfs hinzugefügt, die gekürzt und in der Reihenfolge ihrer Größe angezeigt werden (größte Reihenfolge). Der Funktionsname usw. hat sich geändert.

~/.bashrc



function __lsfp () 
{
    local dir file;
    if [[ -d $1 ]]; then
        [[ $rl ]] && dir=$(readlink -f "$1") || dir=$(cd "$1";pwd);
        ls --color=auto -1 $2 "$1" | while read ent; do
            echo "$dir/$ent";
        done;
    elif [[ -e $1 ]]; then
         [[ $rl ]] && readlink -f "$1" || echo "$(cd $(dirname "$1");pwd)/${1##*/}";
    else
        echo "'$1' is not found." >&2;
    fi
}

function _lsfp () 
{
    local opt arg rl;
    which readlink >/dev/null 2>&1 && rl=1
    [[ $1 =~ ^-[A-Za-z\-]$ ]] && { opt=$1; shift; }
    [[ $# -eq 0 ]] && __lsfp "$(pwd)" $opt || for arg in "$@";
    do
        __lsfp "$arg" $opt;
    done
}

alias lf='_lsfp --'
alias lfa='_lsfp -a'
alias lft='_lsfp -t'
alias lfs='_lsfp -S' #Nach Größe

Recommended Posts

Zeigen Sie den vollständigen Pfad (absoluten Pfad) einer Datei in einem Verzeichnis in Linux Bash an
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
Ersetzen Sie den Verzeichnisnamen und den Dateinamen im Verzeichnis zusammen mit einem Linux-Befehl.
Die Geschichte des "Lochs" in der Akte
Verarbeiten Sie den Inhalt der Datei der Reihe nach mit einem Shell-Skript
Unter Linux ist der Zeitstempel einer Datei etwas vorbei.
So geben Sie das Ausgabeergebnis des Linux-Befehls man in eine Datei aus
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
Durchsuchen Sie das Verzeichnis und erstellen Sie eine Liste mit Verzeichnispfaden und Dateinamen
[Verständnis in 3 Minuten] Der Beginn von Linux
Holen Sie sich den Dateinamen des Verzeichnisses (glob)
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
Ich möchte den Pfad des Verzeichnisses abrufen, in dem die laufende Datei gespeichert ist.
Extrahieren Sie nur den Dateinamen mit Ausnahme des Verzeichnisses im Verzeichnis
Holen Sie sich den Aufrufer einer Funktion in Python
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
Kopieren Sie die Liste in Python
Finden Sie die Anzahl der Tage in einem Monat
Legen Sie eine feste IP in der Linux-Umgebung fest
Versuchen Sie, die Dateiansicht von TortoiseHg ein wenig zu ändern
Ausgabe in Form eines Python-Arrays
In Bash "Löschen Sie die Datei, falls vorhanden".
So lesen Sie Dateien in verschiedenen Verzeichnissen
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Wenn eine Datei im freigegebenen Ordner von Raspberry Pi abgelegt wird, wird der Vorgang ausgeführt.
So zeigen Sie das Änderungsdatum einer Datei in C-Sprache bis zu Nanosekunden an
Ein Hinweis, der einen Job in Python implementiert, der eine GCS-Datei in BigQuery lädt
Konvertieren Sie eine Pfadzeichenfolge, die einen symbolischen Link in der Mitte verwendet, in einen absoluten Pfad
Abrufen des Dateinamens in einem Ordner mithilfe von glob
Die Geschichte des Aufbaus der schnellsten Linux-Umgebung der Welt
[Python] Ruft den offiziellen Dateipfad der Verknüpfungsdatei ab (.lnk)
Holen Sie sich den absoluten Pfad des laufenden Skripts
Umbenennen von Dateien unter Verwendung des vollständigen Pfads, der von der Shell empfangen wurde
Geben Sie das Ausgabeergebnis von sklearn.metrics.classification_report als CSV-Datei aus
Ein Memorandum über die Umsetzung von Empfehlungen in Python
Linux (über Verzeichnispfad)
Python> Bibliothek> Betriebssystem> os.walk ()> Verzeichnisstruktur / Implementierung abrufen, um jeden Dateipfad im angegebenen Verzeichnis abzurufen
[Sublime Text 2] Führen Sie immer eine bestimmte Datei im Projekt aus
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
Vermeiden Sie die Fallstricke bei der Verwendung eines Mac (für Linux-Benutzer?)
Hinweis zum Standardverhalten von collate_fn in PyTorch
Speichern Sie das Pystan-Modell und erhalten Sie eine Pickle-Datei
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Ändern Sie das Standardausgabeziel in eine Datei in Python
Greifen Sie über das Ausführungsskript mit einem relativen Pfad auf die Datei zu.
Hinweise zum Einbetten der Skriptsprache in Bash-Skripte
Hinweis 2 zum Einbetten der Skriptsprache in ein Bash-Skript
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Eine grobe Zusammenfassung der Unterschiede zwischen Windows und Linux
[Python] Ruft das Skriptausführungsverzeichnis mit einem absoluten Pfad ab
Mac Linux Überprüfen Sie die Kapazität direkt in einem bestimmten Verzeichnis
Google sucht mit Python nach der Zeichenfolge in der letzten Zeile der Datei
Finden Sie die Eigenwerte einer reellen symmetrischen Matrix in Python
Umgang mit Zitaten in [bash]
Dateizugriff unter dem Verzeichnis
Informationen zu Linux-Datei- und Verzeichnisberechtigungen
[Linux] Verzeichnis unter dem Stammverzeichnis