This post will go through 10 different Linux commands and their R alternatives. If you’re interested in learning more R functions for working with files like some of those below, also check out this post.
How to list all the files in a directory
Linux | R | What does it do? |
---|---|---|
ls | list.files() | Lists all the files in a directory |
ls -R | list.files(recursive = TRUE) | Recursively lists all the files in a directory and all sub-directories |
ls | grep “something” | list.files(pattern = “something”) | Lists all the files in a directory containing the regex “something” |
R
list.files("/path/to/directory") list.files("/path/to/do/directory", recursive = TRUE) # search for files containing "something" in their name list.files("/path/to/do/directory", pattern = "something") # search for all CSV files list.files("/path/to/do/directory", pattern = ".csv")
Linux
ls /path/to/directory ls -R /path/to/directory # search for files containing "something" in their name ls /path/to/directory | grep "something" # search for all CSV files ls /path/to/directory | grep ".csv"
Getting the top records in a file / object
Linux | R | What does it do? |
---|---|---|
head | head() | Prints the top n records of a file (Linux) / data frame or other object (R) |
R
# let df be a data frame head(df) head(df, 10)
Linux
head -6 some_file.txt head -10 some_file.txt
Getting the current directory
Linux | R | What does it do? |
---|---|---|
pwd | getwd() | Gets the current directory |
R
getwd()
Linux
pwd
Changing the directory
Linux | R | What does it do? |
---|---|---|
cd | setwd() | Change the current working directory |
R
setwd("/path/to/new/directory")
Linux
cd /path/to/new/directory
How to count the number of files in a directory
Linux | R | What does it do? |
---|---|---|
ls -1 | wc -l | length(list.files(…)) | Counts the number of files in a directory |
R
length(list.files("/path/to/some/directory"))
Linux
ls -1 | wc -l
How to check file permissions
Linux | R | What does it do? |
---|---|---|
ls -l | file.info() | Returns the file permissions (Linux) / additional info (R) |
R
file.info("/path/to/directory/file.txt")
file.info returns additional information about a file besides file permissions, including size, created time, last modified time, and last access time. If you just want to get permissions of the file, just run this:
file.info("/path/to/directory/file.txt")$mode
The permissions are returned in octal; to translate what this octal result means into read / write etc. abilities, see this link.
Linux
ls -l /path/to/directory/file.txt
How to create a new directory
Linux | R | What does it do? |
---|---|---|
mkdir | dir.create() | Creates a new directory |
R
# create folder in current directory dir.create("new_folder") # create folder in different directory dir.create("/path/to/new_directory")
Linux
# create folder in current directory mkdir new_folder # create folder in different directory mkdir /path/to/new_directory
How to create a new file
Linux | R | What does it do? |
---|---|---|
touch | file.create() | Creates a new file |
R
# create a file in current directory file.create("new_file.txt") # create file in different directory file.create("/path/to/directory/new_file.txt")
Linux
# create a file in current directory touch new_file.txt # create file in different directory touch /path/to/directory/new_file.txt
How to count the number of lines, words, and characters in a file
Though it’s possible to get the number of lines, words, and characters in a file using base R, it’s simpler to do so with the hyperSpec package.
Just use install.packages to install if needed:
install.packages("hyperSpec")
Running the below line of code will print out a data frame with the number of characters, words, and lines in the input file. Similarly, the Linux wc command will print out the same information for a file.
Linux | R | What does it do? |
---|---|---|
wc | wc() | Lists the number of characters, words, and lines in a file |
R
library(hyperSpec) wc("/path/to/directory/file.txt")
Linux
wc /path/to/directory/file.txt
How to copy a file
Linux | R | What does it do? |
---|---|---|
cp | file.copy() | Copy a file |
R
# copy file.txt to new_directory file.copy("/path/to/directory/file.txt", "/path/to/new_directory")
Linux
# option 1 cp /path/to/directory/file.txt /path/to/new_directory # option 2 cp /path/to/directory/file.txt /path/to/new_directory/file.txt
That’s it for this post. Happy coding! Please check out my other R posts here.