Πώς να χειριστείτε τη μετάβαση ονόματα αρχείων με διαστήματα στο Bash

Το Linux έχει ένα προκαθορισμένο κέλυφος Bash (γνωστό και ως Bourne ξανά κέλυφος) για την εκτέλεση εντολών για το σύστημα. Οι περισσότεροι προγραμματιστές προτιμούν το bash πάνω από το cmd λόγω της ευελιξίας και του ισχυρού διερμηνέα γραμμής εντολών που παρέχει bash. Ωστόσο, οι περισσότεροι χρήστες θα εξακολουθούν να έχουν προβλήματα ενώ προσπαθούν να χειριστούν τα ονόματα αρχείων με διαστήματα στο bash. Αυτό συμβαίνει επειδή τα διαστήματα δεν θεωρούνται τα ίδια σε bash όπως και σε ονόματα αρχείων.

Αρχεία με κενά στο όνομα

Γιατί το όνομα αρχείου με διαστήματα δεν αναγνωρίζεται από το Bash;

Στο Bash, εάν πληκτρολογείτε πολλές λέξεις χωρίς χαρακτήρα διαφυγής (\) ή εισαγωγικά, θα θεωρήσει όλες τις λέξεις ως επιχειρήματα. Αυτό ισχύει για όλες τις λειτουργίες, είτε αλλάζετε τον κατάλογο με ' cd ' είτε προσπαθείτε να αποκτήσετε πρόσβαση σε αρχεία με εντολές ' cat '. Οτιδήποτε γράφετε μετά τη χρήση αυτών θα θεωρηθεί ως επιχείρημα. Για παράδειγμα:

 cat file.txt 

Εκτελέστε την εντολή χωρίς να χρησιμοποιήσετε χαρακτήρα διαφυγής ή εισαγωγικά

Σημείωση : Το όνομα αρχείου σας μπορεί να είναι οτιδήποτε άλλο εκτός από αυτό το άρθρο, θα χρησιμοποιήσουμε το παράδειγμα " file.txt ".

Εδώ η εντολή " γάτα " θα θεωρήσει το αρχείο και το όνομα ως δύο επιχειρήματα αντί για ένα μόνο επιχείρημα. Ωστόσο, εάν χρησιμοποιείτε χαρακτήρα διαφυγής ή εισαγωγικά, τότε το shell bash θα θεωρήσει ότι ως ένα μόνο όρισμα, το οποίο θα είναι το " filename.txt ".

Όνομα αρχείου με διαστήματα στο Bash

Υπάρχουν λίγες μέθοδοι που μπορούν να χρησιμοποιηθούν για τους χώρους στο όνομα. Η καλύτερη πρακτική είναι να αποφεύγετε στο μέλλον χώρους για ονόματα αρχείων. Μια απλή μέθοδος θα είναι να μετονομάσετε το αρχείο που προσπαθείτε να αποκτήσετε πρόσβαση και να αφαιρέσετε κενά. Ορισμένες άλλες μέθοδοι χρησιμοποιούν μονές ή διπλές αναφορές στο όνομα του αρχείου με κενά ή χρησιμοποιώντας το σύμβολο διαφυγής (\) ακριβώς πριν το διάστημα. Θα παρέχουμε μεθόδους με εφαρμοσμένα παραδείγματα για να σας δείξουμε πώς λειτουργεί.

Μέθοδος 1: Χρήση ενιαίων και διπλών προσφορών

  1. Κρατήστε τα πλήκτρα Ctrl + Alt και πατήστε T για να ανοίξετε το τερματικό .
  2. Τώρα αλλάξτε τον κατάλογο όπου βρίσκεται το αρχείο.

    (μπορείτε επίσης να μεταφέρετε και να αποθέσετε το αρχείο στο τερματικό μετά την εντολή ' cat ', η οποία θα τοποθετήσει αυτόματα τις τιμές στην διαδρομή αρχείου / κατάλογο)

     cd Desktop 

    Αλλαγή καταλόγου

    Σημείωση : Η επιφάνεια εργασίας μπορεί να αλλάξει στη θέση στην οποία προσπαθείτε να αποκτήσετε πρόσβαση.

  3. Πληκτρολογήστε την ακόλουθη εντολή για να διαβάσετε ένα αρχείο κειμένου με κενά στο όνομα:
     cat 'file name.txt' 

    ή

     cat "file.txt" 

    Χρησιμοποιώντας τιμές για να αποφύγετε κενά στο όνομα
  4. Οι μοναδικές και οι διπλές προσφορές θα έχουν το ίδιο αποτέλεσμα. Σε ορισμένες περιπτώσεις, θα πρέπει να δοκιμάσετε και τα δύο και να δείτε ποιος λειτουργεί.

Μέθοδος 2: Χρήση χαρακτήρων Escape Backlash

  1. Κρατήστε τα πλήκτρα Ctrl + Alt και πατήστε T για να ανοίξετε το τερματικό .
  2. Αλλάξτε τον κατάλογο στον τόπο όπου βρίσκεται το αρχείο χρησιμοποιώντας την ακόλουθη εντολή.
     cd Desktop 

    Σημείωση : Τοποθετήστε το όνομα της τοποθεσίας σας αντί για το Desktop.

  3. Τώρα πληκτρολογήστε την εντολή και χρησιμοποιήστε το χαρακτήρα διαφυγής οπουδήποτε υπάρχει κενό στο όνομα:
     αρχείο γάτας \ name.txt 

    Χρησιμοποιώντας χαρακτήρα διαφυγής για να αποφύγετε σφάλματα διαστημάτων

Μπόνους: Χρήση προσφορών και διαφυγής

Μερικές φορές όταν χρησιμοποιείτε τον κατάλογο στην εντολή, μπορεί να υπάρχουν συνέπειες για τη χρήση των τιμών στην συνολική διαδρομή. Αυτό οφείλεται στο γεγονός ότι μερικές εντολές όπως ' mv ' ή ' cp ' θα θεωρούν τη διαδρομή ως πηγή αρχείου εάν η προσφορά χρησιμοποιείται ολόκληρη. Θα πρέπει να παρέχετε τιμές για την πηγή και τον προορισμό μεμονωμένα, έτσι ώστε οι εντολές όπως ' cp ' να μπορούν να λειτουργούν σωστά. Μπορείτε επίσης να ελέγξετε το παρακάτω παράδειγμα το οποίο θα σας δείξει ότι η χρήση του χαρακτήρα διαφυγής για τη διαδρομή είναι πολύ πιο περίπλοκη και οι χρήστες μπορούν να κάνουν λάθος με αυτό.

Η διαφορά μεταξύ των τιμών και του χαρακτήρα διαφυγής

Ενδιαφέροντα Άρθρα