Βοήθεια για symbolic links

...ασύγχρονα μαθήματα από τους guru της κοινότητας

Συντονιστής: the_eye

Βοήθεια για symbolic links

Δημοσίευσηαπό Blu3Th1nk3r » 27 Δεκ 2010, 20:14

Χρόνια Πολλά και καλές γιορτές σε όλους!

Θα ήθελα όποιος μπορεί να με βοηθήσει λίγο να δημιουργήσω ένα script το οποίο να ελέγχει αν υπάρχει το αρχείο ενός symbolic link.

Δηλ έχω φτιάξει ένα directory και μέσα έχω βάλει ένα αρχείο και μέσα σε ένα άλλο directory έχω βάλει το symbolic link αυτού του αρχείου.
Θέλω να φτιάξω ένα script το οποίο να κάνει έλεγχο για το αν υπάρχει το αρχείο αλλιώς να διαγράφεται το symbolic link.
Η δυσκολία μου δηλαδή είναι στο να φτιάξω τον έλεγχο if!

Ευχαριστώ εκ των προτέρων! :bow:
Linux: Χαμηλό ┃ Προγραμματισμός: Λίγο ┃ Αγγλικά: Μέτρια
Λειτουργικό σε Η/Υ ϰ μοντέλο: Windows 7 σε Turbo-X
Προδιαγραφές ⇛ T4300 │ RAM 2,96 (είναι δυνατή η χρήση) │ NVIDIA GeForce G105M │ 8187B │ Δεν το βρήκα ακόμα lol │ HD Audio │ PnP
Άβαταρ μέλους
Blu3Th1nk3r
babeTUX
babeTUX
 
Δημοσιεύσεις: 11
Εγγραφή: 06 Σεπ 2010, 20:26
Τοποθεσία: Αθήνα
Εκτύπωση

Re: Βοήθεια για symbolic links

Δημοσίευσηαπό simosx » 27 Δεκ 2010, 20:41

Ακούγεται παράξενο αυτό που προσπαθείς να κάνεις. Ίσως να χρειάζεται να δώσεις περισσότερες πληροφορίες. Μπορείς να εξηγήσεις ποιος είναι ο σκοπός της άσκησης αυτής;
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Βοήθεια για symbolic links

Δημοσίευσηαπό malos » 27 Δεκ 2010, 21:13

Είπες ότι κόλλησες στην if.
Να υποθέσω ότι ενδιαφέρθηκες να το κάνεις μόνος σου;

Να σου πω γιατί ρωτάω !
Αν είναι κάτι που το βιάζεσαι ... ας είναι καλοδεχούμενο ένα έτοιμο scriptάκι από κάποιον γνώστη.

Αν όμως το θες μεν ... αλλά όχι και τόσο γρήγορα ... και σου αρέσει λίγο το παιχνίδι (ομαδικό) .. ας βάλεις φρένο λίγο στο νήμα και ας το γράψουμε ομαδικά όσοι είμαστε στο επίπεδο του "θέλουμε να μάθουμε"

Αν ισχύει το δεύτερο ...
Εγώ βρήκα μέχρι στιγμής (τώρα δηλαδή με ένα γρήγορο ψάξιμο) την συνθήκη if [ -f αρχείο_στον_τρέχοντα φάκελο ] και ασχολείται αν υπάρχει το αρχείο όπως το έγραψες.
Μάλλον θα μπορείς να βάλεις και διαδρομή ολόκληρη (δεν το είδα). Η παράμετρος -f μάλλον θα βγαίνει από τη λέξη file (όχι για να δεις ότι μου έχου μείνει μερικά κύταρα ... ).

Δηλαδή το scriptάκι αυτό

Κώδικας: Επιλογή όλων
#!/bin/bash
if [ -f ένα_αρχείο_σου ]
then
echo yparxei!
else
echo oxi, den yparxei
fi


άμα το τρέξεις θα καταλάβεις.

Μένει να βρούμε πως είναι γραμένη η πληροφορία στο συμβολικό δεσμό και μετά (νομίζω) να κάνουμε κάτι σαν
Κώδικας: Επιλογή όλων
metavliti_mas=H_pliroforia_pou_vrikame_apo_Link
και μετά κάτι σαν
rm $H_pliroforia_pou_vrikame_apo_Link


Πάω τώρα να φτιάξω έναν τέτοιο δεσμό για να τον μελετήσω μετά πως είναι φτιαγμένος.

Αυτά ! Τι λες;


Επεξεργασία Ουπς ! Πρόλαβε και απάντησε ο Σίμος. Ευτυχώς δεν ήρθε κανένα έτοιμο script.
@Σίμο πάντως εγώ το βρήκα αρκετά ενδιαφέρον (φαίνεται πιστεύω από το post μου).
Αλλά από την παρατήρησή σου πήγε το μυαλό και στο κακόβουλο. Αλλά στην περίπτωση του φίλου μας δεν νομίζω ! Αλλά τι λέω μωρέ ; !!! Δεν είπες τίποτα τέτοιο εσύ. Εμένα πήγε το μυαλό μου. Sorry !!!
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1210
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Βοήθεια για symbolic links

Δημοσίευσηαπό Blu3Th1nk3r » 27 Δεκ 2010, 21:31

Ευχαριστώ πολύ παιδιά για την βοήθεια!

simosx έγραψε:Ακούγεται παράξενο αυτό που προσπαθείς να κάνεις. Ίσως να χρειάζεται να δώσεις περισσότερες πληροφορίες. Μπορείς να εξηγήσεις ποιος είναι ο σκοπός της άσκησης αυτής;


Αυτό το κάνω γιατί έχω μια εργασία για OS και που θέλει να κάνω διάφορες τέτοια scriptakia και έχω κολλήσει σε αυτό.

malos έγραψε:Είπες ότι κόλλησες στην if.
Να υποθέσω ότι ενδιαφέρθηκες να το κάνεις μόνος σου;

Να σου πω γιατί ρωτάω !
Αν είναι κάτι που το βιάζεσαι ... ας είναι καλοδεχούμενο ένα έτοιμο scriptάκι από κάποιον γνώστη.

Αν όμως το θες μεν ... αλλά όχι και τόσο γρήγορα ... και σου αρέσει λίγο το παιχνίδι (ομαδικό) .. ας βάλεις φρένο λίγο στο νήμα και ας το γράψουμε ομαδικά όσοι είμαστε στο επίπεδο του "θέλουμε να μάθουμε"

Αν ισχύει το δεύτερο ...
Εγώ βρήκα μέχρι στιγμής (τώρα δηλαδή με ένα γρήγορο ψάξιμο) την συνθήκη if [ -f αρχείο_στον_τρέχοντα φάκελο ] και ασχολείται αν υπάρχει το αρχείο όπως το έγραψες.
Μάλλον θα μπορείς να βάλεις και διαδρομή ολόκληρη (δεν το είδα). Η παράμετρος -f μάλλον θα βγαίνει από τη λέξη file (όχι για να δεις ότι μου έχου μείνει μερικά κύταρα ... ).

Δηλαδή το scriptάκι αυτό

Κώδικας: Επιλογή όλων
#!/bin/bash
if [ -f ένα_αρχείο_σου ]
then
echo yparxei!
else
echo oxi, den yparxei
fi


άμα το τρέξεις θα καταλάβεις.

Μένει να βρούμε πως είναι γραμένη η πληροφορία στο συμβολικό δεσμό και μετά (νομίζω) να κάνουμε κάτι σαν
Κώδικας: Επιλογή όλων
metavliti_mas=H_pliroforia_pou_vrikame_apo_Link
και μετά κάτι σαν
rm $H_pliroforia_pou_vrikame_apo_Link


Πάω τώρα να φτιάξω έναν τέτοιο δεσμό για να τον μελετήσω μετά πως είναι φτιαγμένος.

Αυτά ! Τι λες;



εγώ σε αυτό που λές είχα κάνει ένα παρόμοιο:

Κώδικας: Επιλογή όλων
#!/bin/bash
FILE = $1 // Αυτό το είδα σε παραδείγματα στο ίντερνετ
if [ !-f $FILE ]
then
rm (και εδώ δεν ξέρω τι να βάλω αλλά υποτίθεται θέλω το αντίστοιχο symbolic link του αρχείου)
fi


προσπάθησα να το κάνω και με συγκεκριμένο αρχείο αλλά δεν μου τρέχει το script γιατί λεει πως δεν αναγνωρίζει το "!-f", γράφω την εντολή και χωρίς το "!" αλλά και πάλι δεν αναγνωρίζει το "-f" :S :(

κάπως έτσι το είχα σκεφτεί.
Linux: Χαμηλό ┃ Προγραμματισμός: Λίγο ┃ Αγγλικά: Μέτρια
Λειτουργικό σε Η/Υ ϰ μοντέλο: Windows 7 σε Turbo-X
Προδιαγραφές ⇛ T4300 │ RAM 2,96 (είναι δυνατή η χρήση) │ NVIDIA GeForce G105M │ 8187B │ Δεν το βρήκα ακόμα lol │ HD Audio │ PnP
Άβαταρ μέλους
Blu3Th1nk3r
babeTUX
babeTUX
 
Δημοσιεύσεις: 11
Εγγραφή: 06 Σεπ 2010, 20:26
Τοποθεσία: Αθήνα
Εκτύπωση

Re: Βοήθεια για symbolic links

Δημοσίευσηαπό malos » 27 Δεκ 2010, 23:09

Στην δεύτερη γραμμή κόλα καλά τις λέξεις στο ίσον.
Στην τρίτη άσε ένα κενό από το θαυμαστικό και μετά.

Κώδικας: Επιλογή όλων
#!/bin/bash
FILE=$1
if [ ! -f $FILE ]
then
θα δούμε !!!
fi


Ψάχνω!
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1210
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Βοήθεια για symbolic links

Δημοσίευσηαπό Blu3Th1nk3r » 27 Δεκ 2010, 23:24

malos έγραψε:Στην δεύτερη γραμμή κόλα καλά τις λέξεις στο ίσον.
Στην τρίτη άσε ένα κενό από το θαυμαστικό και μετά.

Κώδικας: Επιλογή όλων
#!/bin/bash
FILE=$1
if [ ! -f $FILE ]
then
θα δούμε !!!
fi


Ψάχνω!


ευχαριστώ πολύ! μην σε κουράζω χρονιάρες μέρες :(
Linux: Χαμηλό ┃ Προγραμματισμός: Λίγο ┃ Αγγλικά: Μέτρια
Λειτουργικό σε Η/Υ ϰ μοντέλο: Windows 7 σε Turbo-X
Προδιαγραφές ⇛ T4300 │ RAM 2,96 (είναι δυνατή η χρήση) │ NVIDIA GeForce G105M │ 8187B │ Δεν το βρήκα ακόμα lol │ HD Audio │ PnP
Άβαταρ μέλους
Blu3Th1nk3r
babeTUX
babeTUX
 
Δημοσιεύσεις: 11
Εγγραφή: 06 Σεπ 2010, 20:26
Τοποθεσία: Αθήνα
Εκτύπωση

Re: Βοήθεια για symbolic links

Δημοσίευσηαπό Sxandy » 29 Οκτ 2014, 09:00

Πατώντας ctrl+c θα έπρεπε να σε πετάξει εντελώς από το πρόγραμμα, γιατί στην ουσία σταματάς την εκτέλεση του με βίαιο τρόπο.

Για να μπορείς να έχεις ανοιχτό το εκάστοτε πρόγραμμα(π.χ. kate,gedit...) και να συνεχίσεις την δουλειά σου στο τερματικό, δίνεις:
$ kate &
Sxandy
babeTUX
babeTUX
 
Δημοσιεύσεις: 1
Εγγραφή: 29 Οκτ 2014, 08:33
Εκτύπωση


Επιστροφή στο Το Σχολείο του Φόρουμ - Ασύγχρονα Μαθήματα

cron