Difference between revisions of "Introduction to Linux in HPC/Files"
Introduction to Linux in HPC/Files
Jump to navigation
Jump to search
m (Tweak page sorting and title) |
|||
(30 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:Tutorials|File Handling (Linux)]]<nowiki /> | ||
+ | {{DISPLAYTITLE:File Handling (Linux)}}<nowiki /> | ||
+ | {{Syllabus Introduction to Linux}}<nowiki /> | ||
__TOC__ | __TOC__ | ||
+ | |||
+ | This part of the tutorial will introduce how Linux deals with files and explain how to list, copy, move and find files in the directory structure. | ||
=== Video === <!--T:5--> | === Video === <!--T:5--> | ||
− | <youtube width="600" height=" | + | <youtube width="600" height="340" right>aWvZKiZqvOY</youtube> |
+ | |||
+ | ([[Media:HPC.NRW_Introduction_to_Linux_in_HPC_04_Files.pdf | Slides as pdf]]) | ||
+ | {{Warning|mode=info|text= ''' <code>ll</code> is an alias for <code>ls -laF</code>, often available by default on many Linux distributions. It provides additional information such as file sizes, modification dates and full paths in the case of links.'''}} | ||
+ | {{Warning|mode=info|text= ''' <code>ls -d *</code> can be used to list only directory names instead of their contents when using the <code>*</code> pattern (or other wildcards).'''}} | ||
=== Quiz === <!--T:5--> | === Quiz === <!--T:5--> | ||
+ | ---- | ||
{{hidden begin | {{hidden begin | ||
− | |title = Can you copy directory with <code>cp <old_dir> <new_dir></code>? | + | |title = 1. Can you copy directory with <code>cp <old_dir> <new_dir></code>? |
}} | }} | ||
<quiz display=simple> | <quiz display=simple> | ||
{ | { | ||
|type="()"} | |type="()"} | ||
− | - Yes | + | - Yes. |
|| | || | ||
− | + No, <code>-r</code> | + | + No, the <code>-r</code> argument is needed to copy a directory. |
|| Explanation: Without any option the <code>cp</code> command can only be used to copy files (text files as well as binary files). To copy a directory, the <code>-r</code> option must be used and it means to copy a given directory in a recursive manner, e.g. one file after another in a directory. | || Explanation: Without any option the <code>cp</code> command can only be used to copy files (text files as well as binary files). To copy a directory, the <code>-r</code> option must be used and it means to copy a given directory in a recursive manner, e.g. one file after another in a directory. | ||
</quiz> | </quiz> | ||
{{hidden end}} | {{hidden end}} | ||
+ | {{Warning|mode=warn|text=''' <code>rm -f</code>: no confirmation! Use with care.'''}} | ||
− | + | ---- | |
− | |||
+ | {{hidden begin | ||
+ | |title = 2. What would be a suitable wildcard for listing the files <code>test_01</code>, <code>test_02</code>, <code>test_03</code> and <code>prod_02</code> but NOT <code>test_04</code> and <code>debug_02</code> | ||
+ | }} | ||
+ | <quiz display=simple> | ||
+ | { | ||
+ | |type="()"} | ||
+ | - <code>*_*</code> | ||
+ | || | ||
+ | - <code>[t,p]*_*</code> | ||
+ | || | ||
+ | + <code>[t,p]???_0[1-3] | ||
+ | || Explanation: Only <code>[t,p]???_0[1-3]</code> would not match <code>test_04</code> or <code>debug_02</code>. Care should be taken, however, as it could also match other files and it might be better to split the task into multiple commands. | ||
+ | - <code>*_0[1-3]</code> | ||
+ | </quiz> | ||
+ | {{hidden end}} | ||
+ | |||
+ | {{Warning|mode=warn|text='''The shell expands wildcards before they are passed as arguments! In some cases (for example, when using <code>find</code> with a wildcard), you should enclose the wildcard in quotes: <code>find . -type f -name "*test*"</code>.'''}} | ||
+ | |||
+ | ---- | ||
=== Exercises in Terminal === <!--T:5--> | === Exercises in Terminal === <!--T:5--> | ||
Line 53: | Line 82: | ||
|} | |} | ||
− | + | {{Tutorial Navigation | |
− | + | | previous = [[Introduction_to_Linux_in_HPC/Directory_structure | Linux Directory Structure ]] | |
− | + | | main = [[Introduction_to_Linux_in_HPC | Overview ]] | |
− | + | | next = [[Introduction_to_Linux_in_HPC/Text_display_search | Text Display and Search ]] | |
+ | }} |
Latest revision as of 16:21, 4 December 2020
Tutorial | |
---|---|
Title: | Introduction to Linux in HPC |
Provider: | HPC.NRW
|
Contact: | tutorials@hpc.nrw |
Type: | Multi-part video |
Topic Area: | HPC Platforms |
License: | CC-BY-SA |
Syllabus
| |
1. Background and History | |
2. The Command Line | |
3. Linux Directory Structure | |
4. Files | |
5. Text display and search | |
6. Users and permissions | |
7. Processes | |
8. The vim text editor | |
9. Shell scripting | |
10. Environment variables | |
11. System configuration | |
12. SSH Connections | |
13. SSH: Graphics and File Transfer | |
14. Various tips |
This part of the tutorial will introduce how Linux deals with files and explain how to list, copy, move and find files in the directory structure.
Video
Info: | ll is an alias for ls -laF , often available by default on many Linux distributions. It provides additional information such as file sizes, modification dates and full paths in the case of links. |
Info: | ls -d * can be used to list only directory names instead of their contents when using the * pattern (or other wildcards). |
Quiz
1. Can you copy directory with
cp <old_dir> <new_dir>
?
Warning: | rm -f : no confirmation! Use with care. |
2. What would be a suitable wildcard for listing the files
test_01
, test_02
, test_03
and prod_02
but NOT test_04
and debug_02
Warning: | The shell expands wildcards before they are passed as arguments! In some cases (for example, when using find with a wildcard), you should enclose the wildcard in quotes: find . -type f -name "*test*" . |
Exercises in Terminal
1. Use the find command to search for files, whose name ends with dat, in your home directory.
Answer: |
The complete command is
|
2. Use the find command to search for directories, whose name begins with test and ends with _dir, in your home directory.
Answer: |
The complete command is find $HOME -type d -name "test*_dir" find can be used to search files and directories. $HOME is your home directory. -type d means only directory (not file) will be shown. -name "test*_dir" specifies the required directory name, which begins with test and ends with _dir. The wild card * matches any characters in between. |