Difference between revisions of "Scripting - Chapter 6: The Filesystem"

From PlayOnLinux
Jump to: navigation, search
(Removing a file or directory)
(Add some recommendations about testing resources before creating virtual drives, in accordance with #1027 (https://www.playonlinux.com/en/issue-1027.html))
(Tag: visualeditor)
 
(5 intermediate revisions by 2 users not shown)
Line 16: Line 16:
  
 
It will create a variable '''$POL_System_TmpDir''' that will contain the path of the temporary directory. In this directory, you'll be free to store and modify all the files you want, for the whole script duration.
 
It will create a variable '''$POL_System_TmpDir''' that will contain the path of the temporary directory. In this directory, you'll be free to store and modify all the files you want, for the whole script duration.
 +
 +
It is recommended for install scripts to first check (as far as possible) that all needed resources are available before prefix creation, and installation itself. POL_System_TmpCreate can become very useful to this end, because it doesn't require any prefix to already exist.
  
 
=== Delete the temporary directory ===
 
=== Delete the temporary directory ===
Line 29: Line 31:
 
</pre>
 
</pre>
  
'' '''NOTE:''' Tis futile to remove the files you created in the temporary directory before calling the POL_System_TmpDelete command.''
+
{{Info| it is futile to remove the files you created in the temporary directory before calling the POL_System_TmpDelete command.}}
  
 
== Other filesystem commands ==
 
== Other filesystem commands ==
Line 59: Line 61:
 
=== Removing a file or directory ===
 
=== Removing a file or directory ===
  
'' '''WARNING:''' This command is very dangerous. It could destroy all your files if you don't handle it properly. For example, if you decide to remove /home/user/.PlayOnLinux/tmp/ and that you inadvertently insert a blank between /home/user/ and .PlayOnLinux, you can say farewell to your documents. PlayOnLinux could not be held responsible for any mishandling on your part.''
+
{{WarningRed|This command is very dangerous. It could destroy all your files if you don't handle it properly. For example, if you decide to remove /home/user/.PlayOnLinux/tmp/ and that you inadvertently insert a blank between /home/user/ and .PlayOnLinux, you can say farewell to your documents. PlayOnLinux could not be held responsible for any mishandling on your part.''
 +
 
  
'''SERIOUSLY; do not drop the ball on this one!'''
+
'''SERIOUSLY; be diligent in your code quality.'''}}
  
 
'''Syntax:'''
 
'''Syntax:'''

Latest revision as of 17:12, 22 March 2015

There are a couple of good ways to manipulate your files and directories in Bash. We'll give you the most important commands for writing PlayOnLinux scripts.

PlayOnLinux temporary directories

You can use a temporary directory for your script when it runs. To do that:

Syntax:

POL_System_TmpCreate "NameOfTemporaryDirectory"

Example:

POL_System_TmpCreate "MozillaFirefox"

It will create a variable $POL_System_TmpDir that will contain the path of the temporary directory. In this directory, you'll be free to store and modify all the files you want, for the whole script duration.

It is recommended for install scripts to first check (as far as possible) that all needed resources are available before prefix creation, and installation itself. POL_System_TmpCreate can become very useful to this end, because it doesn't require any prefix to already exist.

Delete the temporary directory

Syntax:

POL_System_TmpDelete

Example:

POL_System_TmpDelete
it is futile to remove the files you created in the temporary directory before calling the POL_System_TmpDelete command.

Other filesystem commands

Switching directory

Syntax:

cd "path"

Example:

cd "/path/to/a/directory"
cd "$HOME" # Switch to user's personal directory
cd "$CDROM" # Switch to CD/DVD directory
cd "$POL_System_TmpDir" # Switch to temporary directory

Removing a file or directory

This command is very dangerous. It could destroy all your files if you don't handle it properly. For example, if you decide to remove /home/user/.PlayOnLinux/tmp/ and that you inadvertently insert a blank between /home/user/ and .PlayOnLinux, you can say farewell to your documents. PlayOnLinux could not be held responsible for any mishandling on your part.


SERIOUSLY; be diligent in your code quality.

Syntax:

rm "filename"
rm -r "directory"

Example:

rm "$POL_System_TmpDir/file.txt"
rm -r "$POL_System_TmpDir/directory"

If they are any remaining files and/or subdirectories in the directory you're removing, they'll also be removed for good.

Copying a file or a directory

Syntax:

cp "SourceFile" "TargetFile"
cp -r "SourceDirectory" "TargetDirectory"

Examples of file copy:

cp "/home/user/file.txt" "/home/user/copy_of_file.txt"
cp "/home/user/file.txt" "/home/user/data/file.txt"
cp "$CDROM/file.txt" "$POL_System_TmpDir/file.txt"

Example of directory copy:

cp -r "/home/user/My Folder" "/home/user/Desktop/Test/"

Moving or renaming a file or directory

Syntax:

mv "/home/user/file.txt" "home/user/data.txt"
mv "/home/user/file.txt" "/home/user/Desktop/file.txt"
mv "/home/user/file.txt" "/home/user/Desktop/data.txt"

1st command will rename the file file.txt to data.txt.

2nd command will move the file.

3rd command will move AND rename the file.

Previous: Chapter 5: Wine

Next: Chapter 7: Installation Media